![](https://img-blog.csdnimg.cn/37deb9c2abb645c6b141e24df9c82448.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
数组
有序的元素序列
Bonbon_wen
To be or not to be!
展开
-
Leetcode刷题1011. 在 D 天内送达包裹的能力
传送带上的包裹必须在 D 天内从一个港口运送到另一个港口。传送带上的第 i个包裹的重量为weights[i]。每一天,我们都会按给出重量的顺序往传送带上装载包裹。我们装载的重量不会超过船的最大运载重量。返回能在 D 天内将传送带上的所有包裹送达的船的最低运载能力。示例 1:输入:weights = [1,2,3,4,5,6,7,8,9,10], D = 5输出:15解释:船舶最低载重 15 就能够在 5 天内送达所有包裹,如下所示:第 1 天:1, 2, 3, 4, 5第 2 ..原创 2021-01-03 21:33:09 · 243 阅读 · 0 评论 -
Leetcode刷题986. 区间列表的交集
给定两个由一些 闭区间 组成的列表,每个区间列表都是成对不相交的,并且已经排序。返回这两个区间列表的交集。(形式上,闭区间[a, b](其中a <= b)表示实数x的集合,而a <= x <= b。两个闭区间的交集是一组实数,要么为空集,要么为闭区间。例如,[1, 3] 和 [2, 4] 的交集为 [2, 3]。)示例:输入:A = [[0,2],[5,10],[13,23],[24,25]], B = [[1,5],[8,12],[15,24],[25,2...原创 2021-01-03 00:42:11 · 312 阅读 · 0 评论 -
Leetcode刷题875. 爱吃香蕉的珂珂
珂珂喜欢吃香蕉。这里有N堆香蕉,第 i 堆中有piles[i]根香蕉。警卫已经离开了,将在H小时后回来。珂珂可以决定她吃香蕉的速度K(单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉 K 根。如果这堆香蕉少于 K 根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉。珂珂喜欢慢慢吃,但仍然想在警卫回来前吃掉所有的香蕉。返回她可以在 H 小时内吃掉所有香蕉的最小速度 K(K 为整数)。示例 1:输入: piles = [3,6,7,11], H = 8...原创 2021-01-03 20:33:24 · 421 阅读 · 0 评论 -
Leetcode刷题710. 黑名单中的随机数
给定一个包含 [0,n ) 中独特的整数的黑名单 B,写一个函数从 [ 0,n ) 中返回一个不在 B 中的随机整数。对它进行优化使其尽量少调用系统方法 Math.random() 。提示:1 <= N <= 10000000000 <= B.length < min(100000, N)[0, N)不包含N,详细参见interval notation。示例 1:输入:["Solution","pick","pick","pick"][[1,[]]...原创 2020-12-27 23:46:41 · 295 阅读 · 0 评论 -
Leetcode刷题84. 柱状图中最大的矩形
给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为[2,1,5,6,2,3]。图中阴影部分为所能勾勒出的最大矩形面积,其面积为10个单位。示例:输入: [2,1,5,6,2,3]输出: 10来源:力扣(LeetCode...原创 2020-04-30 23:42:49 · 337 阅读 · 0 评论 -
Leetcode刷题149. 直线上最多的点数
给定一个二维平面及平面上的 N 个点列表Points,其中第i个点的坐标为Points[i]=[Xi,Yi]。请找出一条直线,其通过的点的数目最多。设穿过最多点的直线所穿过的全部点编号从小到大排序的列表为S,你仅需返回[S[0],S[1]]作为答案,若有多条直线穿过了相同数量的点,则选择S[0]值较小的直线返回,S[0]相同则选择S[1]值较小的直线返回。示例:输入: [[0,0],[1,1],[1,0],[2,0]]输出: [0,2]解释: 所求直线穿过的3个点的编号为[0,2,3]提示原创 2020-11-22 22:18:13 · 431 阅读 · 0 评论 -
Leetcode刷题57. 插入区间
给出一个无重叠的 ,按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。示例1:输入:intervals = [[1,3],[6,9]], newInterval = [2,5]输出:[[1,5],[6,9]]示例2:输入:intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8]输出:[[1,2],[3,10],[12,16]]..原创 2021-01-03 14:12:30 · 214 阅读 · 0 评论 -
Leetcode刷题66. 加一
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。来...原创 2020-04-18 16:54:45 · 281 阅读 · 0 评论 -
Leetcode刷题628. 三个数的最大乘积
给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。示例 1:输入: [1,2,3]输出: 6示例 2:输入: [1,2,3,4]输出: 24注意:给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]。输入的数组中任意三个数的乘积不会超出32位有符号整数的范围。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-product-of-three-number原创 2020-12-18 07:43:59 · 269 阅读 · 0 评论 -
Leetcode刷题70. 爬楼梯
假设你正在爬楼梯。需要 n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶...原创 2020-04-09 22:47:25 · 282 阅读 · 0 评论 -
Leetcode刷题1288. 删除被覆盖区间
给你一个区间列表,请你删除列表中被其他区间所覆盖的区间。只有当c <= a且b <= d时,我们才认为区间[a,b) 被区间[c,d) 覆盖。在完成所有删除操作后,请你返回列表中剩余区间的数目。示例:输入:intervals = [[1,4],[3,6],[2,8]]输出:2解释:区间 [3,6] 被区间 [2,8] 覆盖,所以它被删除了。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove...原创 2021-01-02 23:37:32 · 231 阅读 · 0 评论 -
Leetcode刷题380. 常数时间插入、删除和获取随机元素
设计一个支持在平均时间复杂度 O(1)下,执行以下操作的数据结构。insert(val):当元素 val 不存在时,向集合中插入该项。remove(val):元素 val 存在时,从集合中移除该项。getRandom:随机返回现有集合中的一项。每个元素应该有相同的概率被返回。示例 :// 初始化一个空的集合。RandomizedSet randomSet = new RandomizedSet();// 向集合中插入 1 。返回 true 表示 1 被成功地插入。randomSet..原创 2020-12-26 21:19:25 · 266 阅读 · 0 评论 -
Leetcode刷题54. 螺旋矩阵
给定一个包含m x n个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例1:输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例2:输入:[ [1, 2, 3, 4], [5, 6, 7, 8], [9,10,11,12]]输出: [1,2,3,4,8,12,11,10,9,5,6,7]来源:力扣(LeetCode)链接:https:/...原创 2020-12-09 23:26:54 · 229 阅读 · 0 评论 -
Leetcode刷题56. 合并区间
给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: intervals = [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例2:输入: intervals = [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。来源:力扣(LeetCode)链接:https://leetcode.原创 2021-01-03 00:04:59 · 355 阅读 · 1 评论 -
Leetcode刷题209. 长度最小的子数组
找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。输入:target = 11, nums = [1,1,1,1,1,1,1,1]输入:target = 7, nums = [2,3,1,2,4,3]著作权归领扣网络所有。给定一个含有 n 个正整数的数组和一个正整数 target。输入:target = 4, nums = [1,4,4]解释:子数组 [4,3] 是该条件下的长度最小的子数组。原创 2023-04-01 23:55:22 · 384 阅读 · 0 评论 -
Leetcode刷题167. 两数之和 II - 输入有序数组
如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1原创 2022-11-19 00:24:59 · 330 阅读 · 0 评论 -
Leetcode刷题162. 寻找峰值
峰值元素是指其值大于左右相邻值的元素。给定一个输入数组nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。你可以假设nums[-1] = nums[n] = -∞。示例 1:输入: nums = [1,2,3,1]输出: 2解释: 3 是峰值元素,你的函数应该返回其索引 2。示例2:输入: nums = [1,2,1,3,5,6,4]输出: 1 或 5解释: 你的函数可以...原创 2020-12-11 23:38:35 · 259 阅读 · 0 评论 -
Leetcode刷题154. 寻找旋转排序数组中的最小值 II
注意,数组 [a[0], a[1], a[2], ..., a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], ..., a[n-2]]。已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。请你找出并返回数组中的 最小元素。若旋转 4 次,则可以得到 [4,5,6,7,0,1,4]若旋转 7 次,则可以得到 [0,1,4,4,5,6,7]输入:nums = [2,2,2,0,1]输入:nums = [1,3,5]原创 2023-03-12 00:25:10 · 228 阅读 · 0 评论 -
Leetcode刷题153. 寻找旋转排序数组中的最小值
注意,数组 [a[0], a[1], a[2], ..., a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], ..., a[n-2]]。解释:原数组为 [0,1,2,4,5,6,7] ,旋转 4 次得到输入数组。解释:原数组为 [1,2,3,4,5] ,旋转 3 次得到输入数组。若旋转 4 次,则可以得到 [4,5,6,7,0,1,2]若旋转 7 次,则可以得到 [0,1,2,4,5,6,7]输入:nums = [4,5,6,7,0,1,2]原创 2023-03-12 00:09:36 · 228 阅读 · 0 评论 -
Leetcode刷题81. 搜索旋转排序数组 II
假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组[0,0,1,2,2,5,6]可能变为[2,5,6,0,0,1,2])。编写一个函数来判断给定的目标值是否存在于数组中。若存在返回true,否则返回false。示例1:输入: nums = [2,5,6,0,0,1,2], target = 0输出: true示例2:输入: nums = [2,5,6,0,0,1,2], target = 3输出: false来源:力扣(LeetCode)链接...原创 2020-12-27 17:05:49 · 281 阅读 · 3 评论 -
Leetcode刷题74. 搜索二维矩阵
输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13。输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3。链接:https://leetcode.cn/problems/search-a-2d-matrix。编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。每行的第一个整数大于前一行的最后一个整数。每行中的整数从左到右按升序排列。原创 2023-02-05 23:35:15 · 356 阅读 · 0 评论 -
Leetcode刷题69. x 的平方根
注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5。解释:8 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。链接:https://leetcode.cn/problems/sqrtx。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去。给你一个非负整数 x ,计算并返回 x 的 算术平方根。来源:力扣(LeetCode)原创 2023-02-04 23:45:32 · 317 阅读 · 0 评论 -
Leetcode刷题35. 搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。链接:https://leetcode.cn/problems/search-insert-position。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。输入: nums = [1,3,5,6], target = 5。输入: nums = [1,3,5,6], target = 2。输入: nums = [1,3,5,6], target = 7。原创 2023-02-04 22:25:38 · 436 阅读 · 0 评论 -
Leetcode刷题34. 在排序数组中查找元素的第一个和最后一个位置
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。输入:nums = [5,7,7,8,8,10], target = 8。输入:nums = [5,7,7,8,8,10], target = 6。商业转载请联系官方授权,非商业转载请注明出处。如果数组中不存在目标值 target,返回 [-1, -1]。输入:nums = [], target = 0。nums 是一个非递减数组。输出:[-1,-1]输出:[-1,-1]原创 2022-12-29 22:43:02 · 161 阅读 · 0 评论 -
Leetcode刷题33. 搜索旋转排序数组
升序排列的整数数组 nums 在预先未知的某个点上进行了旋转(例如, [0,1,2,4,5,6,7] 经旋转后可能变为[4,5,6,7,0,1,2] )。请你在数组中搜索target ,如果数组中存在这个目标值,则返回它的索引,否则返回-1。示例 1:输入:nums = [4,5,6,7,0,1,2], target = 0输出:4示例2:输入:nums = [4,5,6,7,0,1,2], target = 3输出:-1示例 3:输入:nums = [1], t...原创 2020-12-27 11:48:32 · 261 阅读 · 0 评论 -
Leetcode刷题4. 寻找两个正序数组的中位数
给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。链接:https://leetcode.cn/problems/median-of-two-sorted-arrays。解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5。商业转载请联系官方授权,非商业转载请注明出处。输入:nums1 = [1,2], nums2 = [3,4]输入:nums1 = [1,3], nums2 = [2]解释:合并数组 = [1,2,3] ,中位数 2。原创 2022-12-19 00:46:46 · 300 阅读 · 0 评论 -
Leetcode刷题215. 数组中的第K个最大元素
链接:https://leetcode.cn/problems/kth-largest-element-in-an-array。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。商业转载请联系官方授权,非商业转载请注明出处。输入: [3,2,3,1,2,4,5,5,6], k = 4。你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。输入: [3,2,1,5,6,4], k = 2。原创 2022-12-18 23:42:35 · 378 阅读 · 0 评论 -
Leetcode刷题912. 排序数组
链接:https://leetcode.cn/problems/sort-an-array。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。给你一个整数数组 nums,请你将该数组升序排列。输入:nums = [5,1,1,2,0,0]输入:nums = [5,2,3,1]输出:[0,0,1,1,2,5]来源:力扣(LeetCode)输出:[1,2,3,5]原创 2022-12-12 00:50:21 · 504 阅读 · 0 评论 -
Leetcode刷题350. 两个数组的交集 II
给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9] 提示:1原创 2022-12-04 21:20:33 · 381 阅读 · 0 评论 -
Leetcode刷题349. 两个数组的交集
给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]解释:[4,9] 也是可通过的 提示:1原创 2022-12-04 20:22:32 · 225 阅读 · 0 评论 -
Leetcode刷题287. 寻找重复数
给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。假设 nums 只有 一个重复的整数 ,返回 这个重复的数 。你设计的解决方案必须 不修改 数组 nums 且只用常量级 O(1) 的额外空间。示例 1:输入:nums = [1,3,4,2,2]输出:2示例 2:输入:nums = [3,1,3,4,2]输出:3 提示:1原创 2022-12-04 14:45:53 · 259 阅读 · 0 评论 -
Leetcode刷题189. 旋转数组
给定一个数组,将数组中的元素向右移动k个位置,其中k是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例2:输入: [-1,-100,3,99] ...原创 2020-04-12 22:28:55 · 318 阅读 · 0 评论 -
Leetcode刷题88. 合并两个有序数组
给你两个有序整数数组nums1 和 nums2,请你将 nums2 合并到nums1中,使 nums1 成为一个有序数组。说明:初始化nums1 和 nums2 的元素数量分别为m 和 n 。你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums...原创 2020-04-16 22:50:27 · 314 阅读 · 0 评论 -
Leetcode刷题75. 颜色分类
给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。商业转载请联系官方授权,非商业转载请注明出处。我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。必须在不使用库内置的 sort 函数的情况下解决这个问题。输入:nums = [2,0,2,1,1,0]输入:nums = [2,0,1]nums[i] 为 0、1 或 2。输出:[0,0,1,1,2,2]来源:力扣(LeetCode)输出:[0,1,2]原创 2022-12-01 01:10:11 · 223 阅读 · 0 评论 -
Leetcode刷题31. 下一个排列
如果不存在下一个更大的排列,那么这个数组必须重排为字典序最小的排列(即,其元素按升序排列)。例如,arr = [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1]。而 arr = [3,2,1] 的下一个排列是 [1,2,3] ,因为 [3,2,1] 不存在一个字典序更大的排列。类似地,arr = [2,3,1] 的下一个排列是 [3,1,2]。例如,arr = [1,2,3] 的下一个排列是 [1,3,2]。输出:[1,3,2]原创 2022-11-29 00:52:29 · 119 阅读 · 0 评论 -
Leetcode刷题42. 接雨水
解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。链接:https://leetcode.cn/problems/trapping-rain-water。给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。原创 2022-11-27 22:19:15 · 102 阅读 · 0 评论 -
Leetcode刷题11. 盛最多水的容器
给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且n的值至少为 2。示例:输入:[1,8,6,2,5,4,8,3,7]输出:49来源:力扣(Leet...原创 2020-04-09 22:36:35 · 400 阅读 · 1 评论 -
Leetcode刷题18. 四数之和
给定一个包含n 个整数的数组nums和一个目标值target,判断nums中是否存在四个元素 a,b,c和 d,使得a + b + c + d的值与target相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集合为:[ [-1, 0, 0, 1], [-2, -1, 1, 2], [-2, 0, 0, 2]...原创 2020-12-21 23:08:24 · 265 阅读 · 0 评论 -
Leetcode刷题16. 最接近的三数之和
给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。链接:https://leetcode.cn/problems/3sum-closest。解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2)。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。输入:nums = [-1,2,1,-4], target = 1。输入:nums = [0,0,0], target = 1。原创 2022-11-28 00:11:06 · 343 阅读 · 0 评论 -
Leetcode刷题15. 三数之和
给你一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]来源:力扣(Le...原创 2020-04-11 15:16:46 · 304 阅读 · 0 评论