
数组
文章平均质量分 60
数组
晋级菜鸟
这个作者很懒,什么都没留下…
展开
-
15. 三数之和
15. 三数之和难度中等3443收藏分享切换为英文接收动态反馈给你一个包含n个整数的数组nums,判断nums中是否存在三个元素a,b,c ,使得a + b + c =0 ?请你找出所有和为0且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nums = [0]输...原创 2021-06-24 16:25:36 · 274 阅读 · 0 评论 -
1310. 子数组异或查询
1310. 子数组异或查询难度中等60收藏分享切换为英文接收动态反馈有一个正整数数组arr,现给你一个对应的查询数组queries,其中queries[i] = [Li,Ri]。对于每个查询i,请你计算从Li到Ri的XOR值(即arr[Li]xorarr[Li+1]xor...xorarr[Ri])作为本次查询的结果。并返回一个包含给定查询queries所有结果的数组。示例 1:输入:arr = [1,3,4,8], queries =...原创 2021-05-12 09:08:14 · 158 阅读 · 0 评论 -
寻找旋转排序数组中的最小值
153. 寻找旋转排序数组中的最小值难度中等413收藏分享切换为英文接收动态反馈已知一个长度为n的数组,预先按照升序排列,经由1到n次旋转后,得到输入数组。例如,原数组nums = [0,1,2,4,5,6,7]在变化后可能得到:若旋转4次,则可以得到[4,5,6,7,0,1,2] 若旋转4次,则可以得到[0,1,2,4,5,6,7]注意,数组[a[0], a[1], a[2], ..., a[n-1]]旋转一次的结果为数组[a[n-1], a[0],...原创 2021-04-08 10:33:16 · 303 阅读 · 0 评论 -
80. 删除有序数组中的重复项 II
80. 删除有序数组中的重复项 II难度中等418收藏分享切换为英文接收动态反馈给你一个有序数组nums,请你原地删除重复出现的元素,使每个元素最多出现两次,返回删除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以...原创 2021-04-06 10:28:41 · 297 阅读 · 0 评论 -
面试题 17.21. 直方图的水量
面试题 17.21. 直方图的水量难度困难84收藏分享切换为英文接收动态反馈给定一个直方图(也称柱状图),假设有人从上面源源不断地倒水,最后直方图能存多少水量?直方图的宽度为 1。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的直方图,在这种情况下,可以接 6 个单位的水(蓝色部分表示水)。感谢 Marcos贡献此图。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6方法一:动态规划对于下标 ii,水能到达的最大高度...原创 2021-04-02 09:21:51 · 159 阅读 · 0 评论 -
238. 除自身以外数组的乘积
238. 除自身以外数组的乘积难度中等770收藏分享切换为英文接收动态反馈给你一个长度为n的整数数组nums,其中n> 1,返回输出数组output,其中output[i]等于nums中除nums[i]之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]提示:题目数据保证数组之中任意元素的全部前缀元素和后缀(甚至是整个数组)的乘积都在 32 位整数范围内。说明:请不要使用除法,且在O(n) 时间复杂度...原创 2021-04-01 23:00:20 · 132 阅读 · 0 评论 -
406. 根据身高重建队列
406. 根据身高重建队列难度中等832收藏分享切换为英文接收动态反馈假设有打乱顺序的一群人站成一个队列,数组people表示队列中一些人的属性(不一定按顺序)。每个people[i] = [hi, ki]表示第i个人的身高为hi,前面正好有ki个身高大于或等于hi的人。请你重新构造并返回输入数组people所表示的队列。返回的队列应该格式化为数组queue,其中queue[j] = [hj, kj]是队列中第j个人的属性(queue[0]是排在队列...原创 2021-04-01 16:13:48 · 117 阅读 · 0 评论 -
448. 找到所有数组中消失的数字
448. 找到所有数组中消失的数字难度简单686收藏分享切换为英文接收动态反馈给定一个范围在 1 ≤ a[i] ≤n(n= 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1,n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。示例:输入:[4,3,2,7,8,2,3,1]输出:[5,6]方法一:原地修改思路及解法我...原创 2021-03-31 12:02:16 · 274 阅读 · 0 评论 -
1486. 数组异或操作
1486. 数组异或操作难度简单31收藏分享切换为英文接收动态反馈给你两个整数,n和start。数组nums定义为:nums[i] = start + 2*i(下标从 0 开始)且n == nums.length。请返回nums中所有元素按位异或(XOR)后得到的结果。示例 1:输入:n = 5, start = 0输出:8解释:数组 nums 为 [0, 2, 4, 6, 8],其中 (0 ^ 2 ^ 4 ^ 6 ^ 8) = 8 。 "^"...原创 2021-03-30 16:33:05 · 100 阅读 · 0 评论 -
74. 搜索二维矩阵
74. 搜索二维矩阵难度中等384收藏分享切换为英文接收动态反馈编写一个高效的算法来判断m x n矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。示例 1:输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3输出:true示例 2:输入:matrix = [[1,3,5,7],[10,11,16,20],[...原创 2021-03-30 16:14:17 · 75 阅读 · 0 评论 -
1470. 重新排列数组
1470. 重新排列数组难度简单56收藏分享切换为英文接收动态反馈给你一个数组nums,数组中有2n个元素,按[x1,x2,...,xn,y1,y2,...,yn]的格式排列。请你将数组按[x1,y1,x2,y2,...,xn,yn]格式重新排列,返回重排后的数组。示例 1:输入:nums = [2,5,1,3,4,7], n = 3输出:[2,3,5,4,1,7] 解释:由于 x1=2, x2=5, x3=1, y1=3, y2=4, y3=7 ,所以答案为...原创 2021-03-28 01:29:00 · 350 阅读 · 0 评论 -
设计循环队列
设计循环队列设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。你的实现应该支持如下操作:MyCircularQueue(k): 构造器,设置队列长度为 k 。Front: 从队首获取元素。如果队列原创 2021-03-24 00:46:28 · 118 阅读 · 0 评论 -
两个数组的交集 II
给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9]说明:输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。我们可以不考虑输出结果的顺序。进阶:如果给定的数组已经排好序呢?你将如何优化你的算法?如果nums1的大小比nums2小很多,哪种方法更...原创 2021-03-15 11:39:21 · 111 阅读 · 0 评论 -
48. 旋转图像(Rotate Image)
给定一个 n×n 的二维矩阵matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[7,4,1],[8,5,2],[9,6,3]]示例 2:输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]输出:[[15,1...原创 2021-03-15 11:11:17 · 248 阅读 · 0 评论 -
有效的数独
判断一个9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字1-9在每一行只能出现一次。数字1-9在每一列只能出现一次。数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用'.'表示。示例1:输入:[ ["5","3",".",".","7",".",".",".","."], ["6",".",".","1","9","5",".",".","."...原创 2021-03-15 10:44:06 · 77 阅读 · 0 评论 -
leetcode:13只出现一次的数字
只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例2:输入: [4,1,2,1,2]输出: 4作者:力扣 (LeetCode)链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/x21ib6/来源:力扣.原创 2021-03-15 10:42:46 · 84 阅读 · 0 评论 -
加一leetcode
加一给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。示例2:输入:digits = [4,3,2,1]输出:[4,3,2,2]解释:输入数组表示数字 4321。示例 3:输入:digits = [0]输出:[1]作者:力...转载 2021-03-13 18:30:04 · 88 阅读 · 0 评论 -
217. 存在重复元素
给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true作者:力扣 (LeetCode)链接:https://leetcode-cn.com/leetbook/read/top-interview-..转载 2021-03-13 00:52:56 · 139 阅读 · 0 评论 -
122.买卖股票的最佳时机 II
买卖股票的最佳时机 II给定一个数组,它的第i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 随后,在第 4 天(股票价格 ...原创 2021-03-13 00:44:04 · 112 阅读 · 0 评论 -
LeetCode189.旋转数组
旋转数组给定一个数组,将数组中的元素向右移动k个位置,其中k是非负数。进阶:尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。你可以使用空间复杂度为O(1) 的原地算法解决这个问题吗?示例 1:输入: nums = [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...原创 2021-03-12 19:00:36 · 80 阅读 · 0 评论 -
删除排序数组中的重复项
给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例2:给定 nums = [0,0,1,1,1,2,2,3,3,4],函数应该返回新的长度 5,...原创 2021-03-12 17:05:06 · 67 阅读 · 0 评论 -
1512. 好数对的数目
给你一个整数数组 nums 。如果一组数字 (i,j) 满足 nums[i] == nums[j] 且 i < j ,就可以认为这是一组 好数对 。返回好数对的数目。示例 1:输入:nums = [1,2,3,1,1,3]输出:4解释:有 4 组好数对,分别是 (0,3), (0,4), (3,4), (2,5) ,下标从 0 开始示例 2:输入:nums = [1,1,1,1]输出:6解释:数组中的每组数字都是好数对示例 3:输入:nums = [1,2,3.原创 2021-03-12 01:02:57 · 93 阅读 · 0 评论 -
1773. 统计匹配检索规则的物品数量
给你一个数组 items ,其中items[i] = [typei, colori, namei] ,描述第 i 件物品的类型、颜色以及名称。另给你一条由两个字符串ruleKey 和 ruleValue 表示的检索规则。如果第 i 件物品能满足下述条件之一,则认为该物品与给定的检索规则 匹配 :ruleKey == "type" 且 ruleValue == typei 。ruleKey == "color" 且 ruleValue == colori 。ruleKey == "name..原创 2021-03-12 00:55:25 · 163 阅读 · 0 评论 -
1672. 最富有客户的资产总量
给你一个 m x n 的整数网格 accounts ,其中 accounts[i][j] 是第 i 位客户在第 j 家银行托管的资产数量。返回最富有客户所拥有的 资产总量 。客户的 资产总量 就是他们在各家银行托管的资产数量之和。最富有客户就是 资产总量 最大的客户。示例 1:输入:accounts = [[1,2,3],[3,2,1]]输出:6解释:第 1 位客户的资产总量 = 1 + 2 + 3 = 6第 2 位客户的资产总量 = 3 + 2 + 1 = 6两位客户.原创 2021-03-11 23:50:03 · 85 阅读 · 0 评论 -
283. 移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/move-zeroes著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。classSolution:defmov...原创 2021-03-11 21:04:59 · 78 阅读 · 0 评论