![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
文章平均质量分 61
晋级菜鸟
这个作者很懒,什么都没留下…
展开
-
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 · 222 阅读 · 0 评论 -
11. 盛最多水的容器
11. 盛最多水的容器难度中等2491收藏分享切换为英文接收动态反馈给你n个非负整数a1,a2,...,an,每个数代表坐标中的一个点(i,ai)。在坐标内画n条垂直线,垂直线i的两个端点分别为(i,ai)和(i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:49 解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]...原创 2021-05-28 16:06:52 · 146 阅读 · 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 · 109 阅读 · 0 评论 -
368. 最大整除子集
368. 最大整除子集难度中等290收藏分享切换为英文接收动态反馈给你一个由无重复正整数组成的集合nums,请你找出并返回其中最大的整除子集answer,子集中每一元素对(answer[i], answer[j])都应当满足:answer[i] % answer[j] == 0,或 answer[j] % answer[i] == 0如果存在多个有效解子集,返回其中任何一个均可。示例 1:输入:nums = [1,2,3]输出:[1,2]解释:[1,3]...原创 2021-04-23 19:02:42 · 93 阅读 · 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 · 247 阅读 · 0 评论 -
80. 删除有序数组中的重复项 II
80. 删除有序数组中的重复项 II难度中等418收藏分享切换为英文接收动态反馈给你一个有序数组nums,请你原地删除重复出现的元素,使每个元素最多出现两次,返回删除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以...原创 2021-04-06 10:28:41 · 232 阅读 · 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 · 120 阅读 · 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 · 87 阅读 · 0 评论 -
39. 组合总和
39. 组合总和难度中等1259收藏分享切换为英文接收动态反馈给定一个无重复元素的数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的数字可以无限制重复被选取。说明:所有数字(包括target)都是正整数。 解集不能包含重复的组合。示例1:输入:candidates = [2,3,6,7], target = 7,所求解集为:[ [7], [2,2,3]]...原创 2021-04-01 20:59:42 · 128 阅读 · 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 · 92 阅读 · 0 评论 -
94. 二叉树的中序遍历
94. 二叉树的中序遍历难度中等902收藏分享切换为英文接收动态反馈给定一个二叉树的根节点root,返回它的中序遍历。示例 1:输入:root = [1,null,2,3]输出:[1,3,2]示例 2:输入:root = []输出:[]示例 3:输入:root = [1]输出:[1]示例 4:输入:root = [1,2]输出:[2,1]示例 5:输入:root = [1,null,2]输出:[1,2]...原创 2021-04-01 12:27:32 · 65 阅读 · 0 评论 -
1006. 笨阶乘
1006. 笨阶乘难度中等61收藏分享切换为英文接收动态反馈通常,正整数n的阶乘是所有小于或等于n的正整数的乘积。例如,factorial(10) = 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1。相反,我们设计了一个笨阶乘clumsy:在整数的递减序列中,我们以一个固定顺序的操作符序列来依次替换原有的乘法操作符:乘法(*),除法(/),加法(+)和减法(-)。例如,clumsy(10) = 10 * 9 / 8 + 7 - 6 * 5 / 4 + ...原创 2021-04-01 11:36:17 · 90 阅读 · 0 评论 -
78. 子集
给你一个整数数组nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。示例 1:输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]示例 2:输入:nums = [0]输出:[[],[0]]提示:1 <= nums.length <= 10-10 <= nums[i] <= 10nums 中的...原创 2021-04-01 00:04:08 · 64 阅读 · 0 评论 -
155. 最小栈
155. 最小栈难度简单857设计一个支持push,pop,top操作,并能在常数时间内检索到最小元素的栈。push(x)—— 将元素 x 推入栈中。 pop()—— 删除栈顶的元素。 top()—— 获取栈顶元素。 getMin()—— 检索栈中的最小元素。示例:输入:["MinStack","push","push","push","getMin","pop","top","getMin"][[],[-2],[0],[-3],[],[],[],[]]...原创 2021-03-31 20:23:22 · 55 阅读 · 0 评论 -
160. 相交链表
160. 相交链表难度简单1070收藏分享切换为英文接收动态反馈编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如果两个链表相交则不能.原创 2021-03-31 14:49:14 · 79 阅读 · 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 · 233 阅读 · 0 评论 -
617. 合并二叉树
617. 合并二叉树难度简单649收藏分享切换为英文接收动态反馈给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为NULL 的节点将直接作为新二叉树的节点。示例1:输入: Tree 1 Tree 2 1 ..原创 2021-03-31 11:15:22 · 154 阅读 · 0 评论 -
461. 汉明距离
461. 汉明距离难度简单386收藏分享切换为英文接收动态反馈两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数x和y,计算它们之间的汉明距离。注意:0 ≤x,y< 231.示例:输入: x = 1, y = 4输出: 2解释:1 (0 0 0 1)4 (0 1 0 0) ↑ ↑上面的箭头指出了对应二进制位不同的位置。class Solution: def hammingDis...原创 2021-03-31 10:36:45 · 53 阅读 · 0 评论 -
90. 子集 II leetcode
90. 子集 II难度中等455收藏分享切换为英文接收动态反馈给你一个整数数组nums,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。返回的解集中,子集可以按任意顺序排列。示例 1:输入:nums = [1,2,2]输出:[[],[1],[1,2],[1,2,2],[2],[2,2]]示例 2:输入:nums = [0]输出:[[],[0]]提示:1 <= nums.length <= ...原创 2021-03-31 10:29:15 · 87 阅读 · 0 评论 -
215. 数组中的第K个最大元素(排序算法)
215. 数组中的第K个最大元素难度中等984收藏分享切换为英文接收动态反馈在未排序的数组中找到第k个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。1.#冒泡排序(超时)O(n^2)最好O(N)...原创 2021-03-30 20:31:11 · 186 阅读 · 0 评论 -
107. 二叉树的层序遍历 II
107. 二叉树的层序遍历 II难度中等423收藏分享切换为英文接收动态反馈给定一个二叉树,返回其节点值自底向上的层序遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其自底向上的层序遍历为:[ [15,7], [9,20], [3]]1.#Definitionforabinaryt...原创 2021-03-30 16:47:24 · 100 阅读 · 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 · 73 阅读 · 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 · 54 阅读 · 0 评论 -
1379. 找出克隆二叉树中的相同节点(该题有点傻逼的不知道想干嘛,中等难度过分了)
1379. 找出克隆二叉树中的相同节点难度中等23收藏分享切换为英文接收动态反馈给你两棵二叉树,原始树original和克隆树cloned,以及一个位于原始树original中的目标节点target。其中,克隆树cloned是原始树original的一个副本。请找出在树cloned中,与target相同的节点,并返回对该节点的引用(在 C/C++ 等有指针的语言中返回 节点指针,其他语言返回节点本身)。注意:你不能对两棵二叉树,以及tar...原创 2021-03-29 12:00:03 · 67 阅读 · 0 评论 -
190. 颠倒二进制位
190. 颠倒二进制位难度简单324收藏分享切换为英文接收动态反馈颠倒给定的 32 位无符号整数的二进制位。提示:请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。 在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在上面的示例 2中,输入表示有符号整数-3,输出表示有符号整数-1073741825。进...原创 2021-03-29 11:40:30 · 121 阅读 · 0 评论 -
429. N 叉树的层序遍历
429. N 叉树的层序遍历难度中等143收藏分享切换为英文接收动态反馈给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。示例 1:输入:root = [1,null,3,2,4,null,5,6]输出:[[1],[3,2,4],[5,6]]示例 2:输入:root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,n.原创 2021-03-29 11:16:00 · 113 阅读 · 0 评论 -
1720. 解码异或后的数组
1720. 解码异或后的数组难度简单14收藏分享切换为英文接收动态反馈未知整数数组arr由n个非负整数组成。经编码后变为长度为n - 1的另一个整数数组encoded,其中encoded[i] = arr[i] XOR arr[i + 1]。例如,arr = [1,0,2,1]经编码后得到encoded = [1,2,3]。给你编码后的数组encoded和原数组arr的第一个元素first(arr[0])。请解码返回原数组arr。可以证明答案存在...原创 2021-03-29 10:46:18 · 166 阅读 · 0 评论 -
111. 二叉树的最小深度(BFS/DFS)
111. 二叉树的最小深度难度简单480收藏分享切换为英文接收动态反馈给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。示例 1:输入:root = [3,9,20,null,null,15,7]输出:2示例 2:输入:root = [2,null,3,null,4,null,5,null,6]输出:5提示:树中节点数的范围在[0, 105]内 -1000 &l...原创 2021-03-29 10:34:32 · 179 阅读 · 0 评论 -
2021-03-28
173. 二叉搜索树迭代器难度中等404收藏分享切换为英文接收动态反馈实现一个二叉搜索树迭代器类BSTIterator,表示一个按中序遍历二叉搜索树(BST)的迭代器:BSTIterator(TreeNode root)初始化BSTIterator类的一个对象。BST 的根节点root会作为构造函数的一部分给出。指针应初始化为一个不存在于 BST 中的数字,且该数字小于 BST 中的任何元素。 boolean hasNext()如果向指针右侧遍历存在数字,则返回true;否则...原创 2021-03-28 20:05:05 · 71 阅读 · 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 · 313 阅读 · 0 评论 -
993. 二叉树的堂兄弟节点
993. 二叉树的堂兄弟节点难度简单121收藏分享切换为英文接收动态反馈在二叉树中,根节点位于深度0处,每个深度为k的节点的子节点位于深度k+1处。如果二叉树的两个节点深度相同,但父节点不同,则它们是一对堂兄弟节点。我们给出了具有唯一值的二叉树的根节点root,以及树中两个不同节点的值x和y。只有与值x和y对应的节点是堂兄弟节点时,才返回true。否则,返回false。示例 1:输入:root = [1,2,3,4], x = 4...原创 2021-03-26 12:33:45 · 198 阅读 · 0 评论 -
83. 删除排序链表中的重复元素
83. 删除排序链表中的重复元素难度简单515收藏分享切换为英文接收动态反馈存在一个按升序排列的链表,给你这个链表的头节点head,请你删除所有重复的元素,使每个元素只出现一次。返回同样按升序排列的结果链表。示例 1:输入:head = [1,1,2]输出:[1,2]示例 2:输入:head = [1,1,2,3,3]输出:[1,2,3]提示:链表中节点数目在范围[0, 300]内 -100 <= Node.val &l...原创 2021-03-26 10:12:25 · 103 阅读 · 0 评论 -
剑指 Offer 32 - II. 从上到下打印二叉树 II
剑指 Offer 32 - II. 从上到下打印二叉树 II难度简单93收藏分享切换为英文接收动态反馈从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。例如:给定二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]提示:节点总数 <= 1000注意:本题与主站 ...原创 2021-03-26 01:02:15 · 116 阅读 · 2 评论 -
82. 删除排序链表中的重复元素 II
82. 删除排序链表中的重复元素 II难度中等547收藏分享切换为英文接收动态反馈存在一个按升序排列的链表,给你这个链表的头节点head,请你删除链表中所有存在数字重复情况的节点,只保留原始链表中没有重复出现的数字。返回同样按升序排列的结果链表。示例 1:输入:head = [1,2,3,3,4,4,5]输出:[1,2,5]示例 2:输入:head = [1,1,1,2,3]输出:[2,3]提示:链表中节点数目在范围[0, 300...原创 2021-03-25 18:40:42 · 95 阅读 · 0 评论 -
279. 完全平方数
279. 完全平方数难度中等807收藏分享切换为英文接收动态反馈给定正整数n,找到若干个完全平方数(比如1, 4, 9, 16, ...)使得它们的和等于n。你需要让组成和的完全平方数的个数最少。给你一个整数n,返回和为n的完全平方数的最少数量。完全平方数是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9和16都是完全平方数,而3和11不是。示例1:输入:n = 12输出:3 解释:12 = 4 ...原创 2021-03-25 16:45:27 · 88 阅读 · 0 评论 -
559. N 叉树的最大深度 (BFS简单)
559. N 叉树的最大深度难度简单156收藏分享切换为英文接收动态反馈给定一个 N 叉树,找到其最大深度。最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。N 叉树输入按层序遍历序列化表示,每组子节点由空值分隔(请参见示例)。示例 1:输入:root = [1,null,3,2,4,null,5,6]输出:3示例 2:输入:root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,nu.原创 2021-03-25 15:33:58 · 194 阅读 · 2 评论 -
1603. 设计停车系统
请你给一个停车场设计一个停车系统。停车场总共有三种不同大小的车位:大,中和小,每种尺寸分别有固定数目的车位。请你实现ParkingSystem类:ParkingSystem(int big, int medium, int small)初始化ParkingSystem类,三个参数分别对应每种停车位的数目。bool addCar(int carType)检查是否有carType对应的停车位。carType有三种类型:大,中,小,分别用数字1,2和3表示。一辆车只能停在...原创 2021-03-24 23:14:53 · 73 阅读 · 0 评论 -
面试题 02.03. 删除中间节点
实现一种算法,删除单向链表中间的某个节点(即不是第一个或最后一个节点),假定你只能访问该节点。示例:输入:单向链表a->b->c->d->e->f中的节点c结果:不返回任何数据,但该链表变为a->b->d->e->f来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/delete-middle-node-lcci著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。.原创 2021-03-24 23:02:47 · 77 阅读 · 0 评论 -
剑指 Offer 58 - II. 左旋转字符串
剑指 Offer 58 - II. 左旋转字符串难度简单97收藏分享切换为英文接收动态反馈字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例 1:输入: s = "abcdefg", k = 2输出:"cdefgab"示例 2:输入: s = "lrloseumgh", k = 6输出:"umghlrlose"...原创 2021-03-24 22:55:23 · 51 阅读 · 0 评论 -
456. 132 模式
给你一个整数数组 nums ,数组中共有 n 个整数。132 模式的子序列 由三个整数 nums[i]、nums[j] 和 nums[k] 组成,并同时满足:i < j < k 和 nums[i] < nums[k] < nums[j] 。如果 nums 中存在 132 模式的子序列 ,返回 true ;否则,返回 false 。进阶:很容易想到时间复杂度为 O(n^2) 的解决方案,你可以设计一个时间复杂度为 O(n logn) 或 O(n) 的解决方案吗?..原创 2021-03-24 20:49:27 · 1326 阅读 · 0 评论