自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

翻译 leetcode 457. 环形数组是否存在循环(快慢指针)

leetcode 457. 环形数组是否存在循环存在一个不含 0 的 环形 数组 nums ,每个 nums[i] 都表示位于下标 i 的角色应该向前或向后移动的下标个数:如果 nums[i] 是正数,向前 移动 nums[i] 步如果 nums[i] 是负数,向后 移动 nums[i] 步因为数组是 环形 的,所以可以假设从最后一个元素向前移动一步会到达第一个元素,而第一个元素向后移动一步会到达最后一个元素。数组中的 循环 由长度为 k 的下标序列 seq :遵循上述移动规则将导致重复下标序

2021-08-07 20:18:35 116

原创 leetcode 1743. 从相邻元素对还原数组

leetcode 1743. 从相邻元素对还原数组存在一个由 n 个不同元素组成的整数数组 nums ,但你已经记不清具体内容。好在你还记得 nums 中的每一对相邻元素。给你一个二维整数数组 adjacentPairs ,大小为 n - 1 ,其中每个 adjacentPairs[i] = [ui, vi] 表示元素 ui 和 vi 在 nums 中相邻。题目数据保证所有由元素 nums[i] 和 nums[i+1] 组成的相邻元素对都存在于 adjacentPairs 中,存在形式可能是 [num

2021-07-25 20:42:22 98

原创 leetcode 5805. 最小未被占据椅子的编号

leetcode 5805. 最小未被占据椅子的编号 有 n 个朋友在举办一个派对,这些朋友从 0 到 n - 1 编号。派对里有 无数 张椅子,编号为 0 到 infinity 。当一个朋友到达派对时,他会占据 编号最小 且未被占据的椅子。比方说,当一个朋友到达时,如果椅子 0 ,1 和 5 被占据了,那么他会占据 2 号椅子。当一个朋友离开派对时,他的椅子会立刻变成未占据状态。如果同一时刻有另一个朋友到达,可以立即占据这张椅子。给你一个下标从 0 开始的二维整数数组 times ,其中 time

2021-07-25 18:26:38 138

原创 leetcode 1893. 检查是否区域内所有整数都被覆盖(差分)

leetcode 1893. 检查是否区域内所有整数都被覆盖给你一个二维整数数组 ranges 和两个整数 left 和 right 。每个 ranges[i] = [starti, endi] 表示一个从 starti 到 endi 的 闭区间 。如果闭区间 [left, right] 内每个整数都被 ranges 中 至少一个 区间覆盖,那么请你返回 true ,否则返回 false 。已知区间 ranges[i] = [starti, endi] ,如果整数 x 满足 starti <=

2021-07-23 21:04:35 122

原创 leetcode 5809. 长度为 3 的不同回文子序列

leetcode 5809. 长度为 3 的不同回文子序列给你一个字符串 s ,返回 s 中 长度为 3 的不同回文子序列 的个数。即便存在多种方法来构建相同的子序列,但相同的子序列只计数一次。回文 是正着读和反着读一样的字符串。子序列 是由原字符串删除其中部分字符(也可以不删除)且不改变剩余字符之间相对顺序形成的一个新字符串。例如,“ace” 是 “abcde” 的一个子序列。示例 1:输入:s = “aabca”输出:3解释:长度为 3 的 3 个回文子序列分别是:“aba” (“a

2021-07-11 15:37:38 180

原创 leetcode 229. 求众数 II (摩尔投票进阶)

leetcode 229. 求众数 II给定一个大小为 n 的整数数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。进阶:尝试设计时间复杂度为 O(n)、空间复杂度为 O(1)的算法解决此问题。示例 1:输入:[3,2,3]输出:[3]示例 2:输入:nums = [1]输出:[1]示例 3:输入:[1,1,1,3,3,2,2,2]输出:[1,2]提示:1 <= nums.length <= 5 * 10^4-10^9 <= nums[i] &

2021-07-09 21:10:50 82

翻译 leetcode 1711. 大餐计数

leetcode 1711. 大餐计数大餐 是指 恰好包含两道不同餐品 的一餐,其美味程度之和等于 2 的幂。你可以搭配 任意 两道餐品做一顿大餐。给你一个整数数组 deliciousness ,其中 deliciousness[i] 是第 i​​​​​​​​​​​​​​ 道餐品的美味程度,返回你可以用数组中的餐品做出的不同 大餐 的数量。结果需要对 10^9 + 7 取余。注意,只要餐品下标不同,就可以认为是不同的餐品,即便它们的美味程度相同。示例 1:输入:deliciousness =

2021-07-09 00:00:40 108

原创 leetcode 930. 和相同的二元子数组

leetcode 930. 和相同的二元子数组给你一个二元数组 nums ,和一个整数 goal ,请你统计并返回有多少个和为 goal 的 非空 子数组。子数组 是数组的一段连续部分。示例 1:输入:nums = [1,0,1,0,1], goal = 2输出:4解释:有 4 个满足题目要求的子数组:[1,0,1]、[1,0,1,0]、[0,1,0,1]、[1,0,1]示例 2:输入:nums = [0,0,0,0,0], goal = 0输出:15提示:1 <=

2021-07-08 23:34:21 159 1

翻译 leetcode 1898. 可移除字符的最大数目

leetcode 1898. 可移除字符的最大数目给你两个字符串 s 和 p ,其中 p 是 s 的一个 子序列 。同时,给你一个元素 互不相同 且下标 从 0 开始 计数的整数数组 removable ,该数组是 s 中下标的一个子集(s 的下标也 从 0 开始 计数)。请你找出一个整数 k(0 <= k <= removable.length),选出 removable 中的 前 k 个下标,然后从 s 中移除这些下标对应的 k 个字符。整数 k 需满足:在执行完上述步骤后, p 仍然是

2021-06-14 18:16:20 127

原创 leetcode 421. 数组中两个数的最大异或值

leetcode 421. 数组中两个数的最大异或值给你一个整数数组 nums ,返回 nums[i] XOR nums[j] 的最大运算结果,其中 0 ≤ i ≤ j < n 。进阶:你可以在 O(n) 的时间解决这个问题吗?示例 1:输入:nums = [3,10,5,25,2,8]输出:28解释:最大运算结果是 5 XOR 25 = 28.示例 2:输入:nums = [0]输出:0示例 3:输入:nums = [2,4]输出:6示例 4:输入:nums

2021-05-24 15:51:28 127

原创 leetcode 1856. 子数组最小乘积的最大值

1856. 子数组最小乘积的最大值一个数组的 最小乘积 定义为这个数组中 最小值 乘以 数组的 和 。比方说,数组 [3,2,5] (最小值是 2)的最小乘积为 2 * (3+2+5) = 2 * 10 = 20 。给你一个正整数数组 nums ,请你返回 nums 任意 非空子数组 的最小乘积 的 最大值 。由于答案可能很大,请你返回答案对 109 + 7 取余 的结果。请注意,最小乘积的最大值考虑的是取余操作 之前 的结果。题目保证最小乘积的最大值在 不取余 的情况下可以用 64 位有符号

2021-05-14 15:05:42 166

原创 leetcode 5750. 人口最多的年份

题目 leetcode 5750. 人口最多的年份给你一个二维整数数组 logs ,其中每个 logs[i] = [birthi, deathi] 表示第 i 个人的出生和死亡年份。年份 x 的 人口 定义为这一年期间活着的人的数目。第 i 个人被计入年份 x 的人口需要满足:x 在闭区间 [birthi, deathi - 1] 内。注意,人不应当计入他们死亡当年的人口中。返回 人口最多 且 最早 的年份。示例 1:输入:logs = [[1993,1999],[2000,2010]]输出:

2021-05-09 16:54:43 139

原创 leetcode 5749. 邻位交换的最小次数

邻位交换的最小次数给你一个表示大整数的字符串 num ,和一个整数 k 。如果某个整数是 num 中各位数字的一个 排列 且它的 值大于 num ,则称这个整数为 妙数 。可能存在很多妙数,但是只需要关注 值最小 的那些。例如,num = “5489355142” :第 1 个最小妙数是 “5489355214”第 2 个最小妙数是 “5489355241”第 3 个最小妙数是 “5489355412”第 4 个最小妙数是 “5489355421”返回要得到第 k 个 最小妙数 需要对 nu

2021-05-03 10:33:13 507

翻译 leetcode 31. 下一个排列

下一个排列实现获取 下一个排列 的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须 原地 修改,只允许使用额外常数空间。下一个排列示例 1:输入:nums = [1,2,3]输出:[1,3,2]示例 2:输入:nums = [3,2,1]输出:[1,2,3]示例 3:输入:nums = [1,1,5]输出:[1,5,1]示例 4:输入:nums = [1]输出:[1]

2021-05-03 10:15:27 82

翻译 leetcode 1824. 最少侧跳次数

1824. 最少侧跳次数给你一个长度为 n 的 3 跑道道路 ,它总共包含 n + 1 个 点 ,编号为 0 到 n 。一只青蛙从 0 号点第二条跑道 出发 ,它想要跳到点 n 处。然而道路上可能有一些障碍。给你一个长度为 n + 1 的数组 obstacles ,其中 obstacles[i] (取值范围从 0 到 3)表示在点 i 处的 obstacles[i] 跑道上有一个障碍。如果 obstacles[i] == 0 ,那么点 i 处没有障碍。任何一个点的三条跑道中 最多有一个 障碍。比方说,

2021-05-02 19:32:22 195 1

原创 leetcode 1838. 最高频元素的频数

元素的 频数 是该元素在一个数组中出现的次数。给你一个整数数组 nums 和一个整数 k 。在一步操作中,你可以选择 nums 的一个下标,并将该下标对应元素的值增加 1 。执行最多 k 次操作后,返回数组中最高频元素的 最大可能频数 。最高频元素的频数示例 1:输入:nums = [1,2,4], k = 5输出:3解释:对第一个元素执行 3 次递增操作,对第二个元素执 2 次递增操作,此时 nums = [4,4,4] 。4 是数组中最高频元素,频数是 3 。示例 2:输入:n

2021-04-29 20:08:41 200

原创 leetcode 220. 存在重复元素 III

给你一个整数数组 nums 和两个整数 k 和 t 。请你判断是否存在 两个不同下标 i 和 j,使得 abs(nums[i] - nums[j]) <= t ,同时又满足 abs(i - j) <= k 。如果存在则返回 true,不存在返回 false。 存在重复元素 III示例 1:输入:nums = [1,2,3,1], k = 3, t = 0输出:true示例 2:输入:nums = [1,0,1,1], k = 1, t = 2输出:true示例3:输

2021-04-24 10:18:34 349

原创 leetcode 1202. 交换字符串中的元素

给你一个字符串 s,以及该字符串中的一些「索引对」数组 pairs,其中 pairs[i] = [a, b] 表示字符串中的两个索引(编号从 0 开始)。你可以 任意多次交换 在 pairs 中任意一对索引处的字符。返回在经过若干次交换后,s 可以变成的按字典序最小的字符串。示例 1:输入:s = “dcab”, pairs = [[0,3],[1,2]]输出:“bacd”解释:交换 s[0] 和 s[3], s = “bcad”交换 s[1] 和 s[2], s = “bacd”示例

2021-04-22 18:37:03 71

翻译 leetcode LCP 30. 魔塔游戏

小扣当前位于魔塔游戏第一层,共有 N 个房间,编号为 0 ~ N-1。每个房间的补血道具/怪物对于血量影响记于数组 nums,其中正数表示道具补血数值,即血量增加对应数值;负数表示怪物造成伤害值,即血量减少对应数值;0 表示房间对血量无影响。小扣初始血量为 1,且无上限。假定小扣原计划按房间编号升序访问所有房间补血/打怪,为保证血量始终为正值,小扣需对房间访问顺序进行调整,每次仅能将一个怪物房间(负数的房间)调整至访问顺序末尾。请返回小扣最少需要调整几次,才能顺利访问所有房间。若调整顺序也无法访问完全部房

2021-04-22 18:22:59 177

翻译 leetcode 1834. 单线程 CPU

给你一个二维数组 tasks ,用于表示 n​​​​​​ 项从 0 到 n - 1 编号的任务。其中 tasks[i] = [enqueueTimei, processingTimei] 意味着第 i​​​​​​​​​​ 项任务将会于 enqueueTimei 时进入任务队列,需要 processingTimei 的时长完成执行。现有一个单线程 CPU ,同一时间只能执行 最多一项 任务,该 CPU 将会按照下述方式运行:如果 CPU 空闲,且任务队列中没有需要执行的任务,则 CPU 保持空闲状态。

2021-04-21 20:54:52 295

原创 leetcode 560. 和为K的子数组

给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。说明 :数组的长度为 [1, 20,000]。数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7]。与此相似的题–>和可被 K 整除的子数组思路比较相似:同样用前缀和,但略有不同。和为k , 也就是和是k的一倍。(模相同是为了找到k的n倍

2021-03-05 11:32:54 63

原创 leetcode 974. 和可被 K 整除的子数组

给定一个整数数组 A,返回其中元素之和可被 K 整除的(连续、非空)子数组的数目。示例:输入:A = [4,5,0,-2,-3,1], K = 5输出:7解释:有 7 个子数组满足其元素之和可被 K = 5 整除:[4, 5, 0, -2, -3, 1], [5], [5, 0], [5, 0, -2, -3], [0], [0, -2, -3], [-2, -3]提示:1 <= A.length <= 30000-10000 <= A[i] <= 10000

2021-03-03 20:17:04 188 1

原创 leetcode 90. 子集 II

给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: [1,2,2]输出:[[2],[1],[1,2,2],[2,2],[1,2],[]]一:迭代思路: 先排序,在当前所有子集的基础上添加新的元素并构成新的子集,但这样会导致重复构建,为避免重复,需要一个指针标记新增子集的索引位置橘色表示新增子集,黑色表示重复子集,由于数字2的重复,在第四行开始之前,需要标记上一行(第三行)新增的子集的起始处,也就是第三

2021-03-02 21:19:37 78

原创 leetcode 1774. 最接近目标价格的甜点成本

题目链接–>最接近目标价格的甜点成本示例 1:输入:baseCosts = [1,7], toppingCosts = [3,4], target = 10输出:10解释:考虑下面的方案组合(所有下标均从 0 开始):选择 1 号基料:成本 7选择 1 份 0 号配料:成本 1 x 3 = 3选择 0 份 1 号配料:成本 0 x 4 = 0总成本:7 + 3 + 0 = 10 。示例 2:输入:baseCosts = [2,3], toppingCosts = [4,

2021-03-02 10:32:18 231

原创 leetcode 1300. 转变数组后最接近目标值的数组和

题目—>转变数组后最接近目标值的数组和给你一个整数数组 arr 和一个目标值 target ,请你返回一个整数 value ,使得将数组中所有大于 value 的值变成 value 后,数组的和最接近 target (最接近表示两者之差的绝对值最小)。如果有多种使得和最接近 target 的方案,请你返回这些整数中的最小值。请注意,答案不一定是 arr 中的数字。示例 1:输入:arr = [4,9,3], target = 10输出:3解释:当选择 value 为 3 时,数组

2021-03-01 11:44:59 123

原创 leetcode 907. 子数组的最小值之和

给定一个整数数组 arr,找到 min(b) 的总和,其中 b 的范围为 arr 的每个(连续)子数组。由于答案可能很大,因此 返回答案模 10^9 + 7 。leetcode题目链接示例 1:输入:arr = [3,1,2,4]输出:17解释:子数组为 [3],[1],[2],[4],[3,1],[1,2],[2,4],[3,1,2],[1,2,4],[3,1,2,4]。最小值为 3,1,2,4,1,1,2,1,1,1,和为 17。提示:1 <= arr.length &lt

2021-02-18 18:29:16 328

原创 leetcode 448. 找到所有数组中消失的数字

给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。原题链接示例:输入:[4,3,2,7,8,2,3,1]输出:[5,6]一:桶排序由于是1~n,将num存放在num-1的索引位置上class Solution {public:

2021-02-13 14:17:59 105 1

原创 leetcode 611. 有效三角形的个数

给定一个包含非负整数的数组,你的任务是统计其中可以组成三角形三条边的三元组个数。示例 1:输入: [2,2,3,4]输出: 3解释:有效的组合是:2,3,4 (使用第一个 2)2,3,4 (使用第二个 2)2,2,3注意:数组长度不超过1000。数组里整数的范围为 [0, 1000]。方法一:对数组进行排序固定两条边,求其和sum,在数组剩余的范围内,二分搜索第一个大于等于sum的索引位置index,也就是左边界,则index左侧就是满足小于sum的第三条边累加左边界

2021-02-13 11:45:24 242

原创 leetcode 219. 存在重复元素 II

给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的 绝对值 至多为 k。示例 1:输入: nums = [1,2,3,1], k = 3输出: true示例 2:输入: nums = [1,0,1,1], k = 1输出: true示例 3:输入: nums = [1,2,3,1,2,3], k = 2输出: false方法一;思路:map存储每个元素的索引集合,遍历每个元素的

2021-02-06 17:48:51 63

原创 小白采坑IDEA中的maven错误

配置maven遇到了各种各样的报错,内心这一万头羊驼怎么也驯服不了。错误1—Failure to transfer错误:Failure to transfer org.apache.maven.plugins:maven-jar-plugin:pom:2.4 from https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the u

2021-01-19 19:46:09 8764

原创 leetcode 721. 账户合并

给定一个列表 accounts,每个元素 accounts[i] 是一个字符串列表,其中第一个元素 accounts[i][0] 是 名称 (name),其余元素是 emails 表示该账户的邮箱地址。现在,我们想合并这些账户。如果两个账户都有一些共同的邮箱地址,则两个账户必定属于同一个人。请注意,即使两个账户具有相同的名称,它们也可能属于不同的人,因为人们可能具有相同的名称。一个人最初可以拥有任意数量的账户,但其所有账户都具有相同的名称。合并账户后,按以下格式返回账户:每个账户的第一个元素是名称,其余

2021-01-19 12:04:35 213

原创 leetcode 310. 最小高度树

树是一个无向图,其中任何两个顶点只通过一条路径连接。 换句话说,一个任何没有简单环路的连通图都是一棵树。给你一棵包含 n 个节点的数,标记为 0 到 n - 1 。给定数字 n 和一个有 n - 1 条无向边的 edges 列表(每一个边都是一对标签),其中 edges[i] = [ai, bi] 表示树中节点 ai 和 bi 之间存在一条无向边。可选择树中任何一个节点作为根。当选择节点 x 作为根节点时,设结果树的高度为 h 。在所有可能的树中,具有最小高度的树(即,min(h))被称为 最小高度树

2021-01-15 21:59:26 261

原创 leetcode -1361. Validate Binary Tree Nodes

leetcode -1361. Validate Binary Tree NodesYou have n binary tree nodes numbered from 0 to n - 1 where node i has two children leftChild[i] and rightChild[i], return true if and only if all the given nodes form exactly one valid binary tree.If node i has

2020-08-11 11:35:38 143

原创 x 的平方根(牛顿迭代法)

x 的平方根实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。也就是说向下取整.示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842…,由于返回类型是整数,小数部分将被舍去1.先来贴上自己写的,二分法的思想class ...

2020-05-06 21:43:22 1358

原创 leetcode 面试题 17.10. 主要元素(摩尔投票算法)

多数元素问题: 给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2摩尔投票算法:核心就是对拼消耗。算法步骤:1.count = 1; num = nums[0]; 表...

2020-05-06 20:32:00 75

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除