
数组
文章平均质量分 53
有关于数组的题
min_coder
这个作者很懒,什么都没留下…
展开
-
LC189. 轮转数组
题目给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。提示:1 <= nums.length <= 10^5-2^31 <= nums[i] <= 2^31 - 10 <= k <= 10^5思路类似于字符串反转的题目步骤:将反转数k对数组长度len取余,避免一些重复旋转将最后k个数之前的先反转一次将最后k个数反转一次将数组反转一次代码class Solution {public: void rotate(v原创 2022-03-20 22:10:56 · 442 阅读 · 0 评论 -
LC128. 最长连续序列
题目给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为 O(n) 的算法解决此问题。提示:0 <= nums.length <= 10^5-10^9 <= nums[i] <= 10^9示例:输入:nums = [100,4,200,1,3,2]输出:4解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。思路题目要求找出最长序列,一般需要采用排序,但是要求时间复杂度为原创 2022-02-17 14:11:12 · 161 阅读 · 0 评论 -
LC73. 矩阵置零
题目给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。提示:m == matrix.lengthn == matrix[0].length1 <= m, n <= 200-231 <= matrix[i][j] <= 231 - 1示例 :输入:matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]思路原创 2022-02-16 17:27:19 · 895 阅读 · 0 评论 -
LC220. 存在重复元素 III
题目给你一个整数数组 nums 和两个整数 k 和 t 。请你判断是否存在 两个不同下标 i 和 j,使得 abs(nums[i] - nums[j]) <= t ,同时又满足 abs(i - j) <= k 。如果存在则返回 true,不存在返回 false。提示: 0 <= nums.length <= 2 * 10^4 -2^31 <= nums[i] <= 2^31 - 1 0 <= k <= 10^4 0 <原创 2022-02-09 21:14:27 · 589 阅读 · 0 评论 -
LC36. 有效的数独
题目请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)注意:一个有效的数独(部分已被填充)不一定是可解的。只需要根据以上规则,验证已经填入的数字是否有效即可。空白格用 '.' 表示。提示:board.length == 9board[i].length == 9board[i][j]原创 2022-01-25 19:35:13 · 488 阅读 · 0 评论 -
LC16. 最接近的三数之和
题目给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在恰好一个解。提示:3 <= nums.length <= 1000-1000 <= nums[i] <= 1000-10^4 <= target <= 10^4相似题目:LC15. 三数之和LC16. 最接近的三数之和LC18. 四数之和思路数组的长度为1000,如原创 2022-01-21 19:54:48 · 363 阅读 · 0 评论 -
LC4. 寻找两个正序数组的中位数
题目给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。算法的时间复杂度应该为 O(log (m+n)) 。提示:nums1.length == mnums2.length == n0 <= m <= 10000 <= n <= 10001 <= m + n <= 2000-10^6 <= nums1[i], nums2[i] <= 10^6思路字越少事越大系列…原创 2022-01-21 19:25:57 · 593 阅读 · 0 评论 -
LC448. 找到所有数组中消失的数字
题目给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。提示:n == nums.length1 <= n <= 1051 <= nums[i] <= n进阶:你能在不使用额外空间且时间复杂度为 O(n) 的情况下解决这个问题吗? 你可以假定返回的数组不算在额外空间内。思路哈希如果单纯为了AC,不考虑空间复杂度,采用哈希集合是一个很好原创 2022-01-11 21:59:28 · 225 阅读 · 0 评论 -
LC303. 区域和检索 - 数组不可变
题目给定一个整数数组 nums,求出数组从索引 i 到 j(i ≤ j)范围内元素的总和,包含 i、j 两点。实现 NumArray 类:NumArray(int[] nums) 使用数组 nums 初始化对象int sumRange(int i, int j) 返回数组 nums 从索引 i 到 j(i ≤ j)范围内元素的总和,包含 i、j 两点(也就是 sum(nums[i], nums[i + 1], ... , nums[j]))注:0 <= nums.length <原创 2022-01-03 22:36:11 · 281 阅读 · 0 评论