![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
文章平均质量分 57
shuest
这个作者很懒,什么都没留下…
展开
-
84. 柱状图中最大的矩形
个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1。求在该柱状图中,能够勾勒出来的矩形的最大面积。最大的矩形为图中红色区域,面积为 10。原创 2022-10-26 18:28:32 · 217 阅读 · 0 评论 -
81. 搜索旋转排序数组 II
请你编写一个函数来判断给定的目标值是否存在于数组中。已知存在一个按非降序排列的整数数组。你必须尽可能减少整个操作步骤。,数组中的值不必互不相同。在预先未知的某个下标。原创 2022-08-15 10:28:04 · 108 阅读 · 0 评论 -
162. 寻找峰值
找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回。或者返回索引5,其峰值元素为6。3是峰值元素,你的函数应该返回其索引2。你的函数可以返回索引1,其峰值元素为2;峰值元素是指其值严格大于左右相邻值的元素。你必须实现时间复杂度为。的算法来解决此问题。...原创 2022-08-02 11:26:14 · 98 阅读 · 0 评论 -
155. 最小栈
minStack.getMin();-->返回-3.minStack.getMin();-->返回-2.minStack.top();难度中等1363收藏分享切换为英文接收动态反馈。操作,并能在常数时间内检索到最小元素的栈。原创 2022-07-28 15:43:28 · 152 阅读 · 0 评论 -
18. 四数之和
难度中等1307收藏分享切换为英文接收动态反馈。请你找出并返回满足下述全部条件且。原创 2022-07-26 10:51:24 · 81 阅读 · 0 评论 -
15. 三数之和
难度中等5007收藏分享切换为英文接收动态反馈。答案中不可以包含重复的三元组。排序i,L,R。原创 2022-07-25 16:07:42 · 136 阅读 · 0 评论 -
7. 整数反转
7. 整数反转难度中等3567收藏分享切换为英文接收动态反馈给你一个 32 位的有符号整数 ,返回将 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321示例 3:输入:x = 120输出:21示例 4:输入:x = 0输出:0提示:...原创 2022-07-21 15:29:14 · 100 阅读 · 0 评论 -
43. 字符串相乘
43. 字符串相乘难度中等983收藏分享切换为英文接收动态反馈给定两个以字符串形式表示的非负整数 和 ,返回 和 的乘积,它们的乘积也表示为字符串形式。注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整数。示例 1:输入: num1 = "2", num2 = "3"输出: "6"示例 2:输入: num1 = "123", num2 = "456"输出: "5原创 2022-07-18 17:39:24 · 174 阅读 · 0 评论 -
97. 交错字符串
的定义与过程如下,其中每个字符串都会被分割成若干。难度中等735收藏分享切换为英文接收动态反馈。额外的内存空间来解决它?原创 2022-07-18 15:57:05 · 112 阅读 · 0 评论 -
75. 颜色分类
对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。必须在不使用库的sort函数的情况下解决这个问题。难度中等1341收藏分享切换为英文接收动态反馈。给定一个包含红色、白色和蓝色、共。分别表示红色、白色和蓝色。...原创 2022-07-18 15:32:10 · 144 阅读 · 0 评论 -
133. 克隆图
存储克隆节点和原节点的哈希表需要O(N)的空间,递归调用栈需要O(H)的空间,其中HH是图的深度,经过放缩可以得到O(H)=O(N)O(H)=O(N),因此总体空间复杂度为O(N)。给定节点将始终是图中的第一个节点(值为1)。节点1的值是1,它有两个邻居节点2和4。节点2的值是2,它有两个邻居节点1和3。节点3的值是3,它有两个邻居节点2和4。节点4的值是4,它有两个邻居节点1和3。图中一个节点的引用,请你返回该图的。...原创 2022-07-18 15:06:28 · 75 阅读 · 0 评论 -
341. 扁平化嵌套列表迭代器
我们可以先遍历整个嵌套列表,将所有整数存入一个数组,然后遍历该数组从而实现\texttt{next}next和\texttt{hasNext}hasNext方法。该列表的元素也可能是整数或者是其他列表。请你实现一个迭代器将其扁平化,使之能够遍历这个列表中的所有整数。其中nn是嵌套的整型列表中的元素个数。嵌套的整型列表是一个树形结构,树上的叶子节点对应一个整数,非叶节点对应一个列表。需要一个数组存储嵌套的整型列表中的所有元素。与预期的扁平化列表匹配,那么你的代码将会被判为正确。...原创 2022-07-15 18:55:04 · 92 阅读 · 0 评论 -
328. 奇偶链表
将所有索引为奇数的节点和索引为偶数的节点分别组合在一起,然后返回重新排序的列表。时间复杂度O(n),其中n是链表的节点数。需要遍历链表中的每个节点,并更新指针。请注意,偶数组和奇数组内部的相对顺序应该与输入时保持一致。难度中等610收藏分享切换为英文接收动态反馈。空间复杂度O(1)。只需要维护有限的指针。的时间复杂度下解决这个问题。...原创 2022-07-15 18:31:44 · 86 阅读 · 0 评论 -
279. 完全平方数
279. 完全平方数难度中等1427收藏分享切换为英文接收动态反馈给你一个整数 ,返回 和为 的完全平方数的最少数量 。完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,、、 和 都是完全平方数,而 和 不是。示例 1:输入:n = 输出:3 解释:示例 2:输入:n = 输出:2解释:提示:f(625) = f(25) + 1......原创 2022-07-14 14:50:09 · 66 阅读 · 0 评论 -
297. 二叉树的序列化与反序列化
297. 二叉树的序列化与反序列化序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。提示: 输入输出格式与 LeetCode 目前使用的方式一致,详情请参阅 LeetCode 序列化二叉树的格式。你并非必须采取原创 2022-07-13 18:44:23 · 59 阅读 · 0 评论 -
38. 外观数列
38. 外观数列难度中等917收藏分享切换为英文接收动态反馈给定一个正整数 ,输出外观数列的第 项。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。你可以将其视作是由递归公式定义的数字字符串序列:前五项如下:1. 12. 113. 214. 12115. 111221第一项是数字 1 描述前一项,这个数是 即 “ 一 个 1 ”,记作 描述前一项,这个数是 即 “ 二 个 1 &原创 2022-07-13 17:53:51 · 134 阅读 · 0 评论 -
226. 翻转二叉树
226. 翻转二叉树难度简单1340收藏分享切换为英文接收动态反馈给你一棵二叉树的根节点 ,翻转这棵二叉树,并返回其根节点。示例 1:输入:root = [4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]示例 2:输入:root = [2,1,3]输出:[2,3,1]示例 3:输入:root = []输出:[]提示:...原创 2022-07-07 10:55:32 · 108 阅读 · 0 评论 -
310. 最小高度树
310. 最小高度树难度中等666收藏分享切换为英文接收动态反馈树是一个无向图,其中任何两个顶点只通过一条路径连接。 换句话说,一个任何没有简单环路的连通图都是一棵树。给你一棵包含 个节点的树,标记为 到 。给定数字 和一个有 条无向边的 列表(每一个边都是一对标签),其中 表示树中节点 和 之间存在一条无向边。可选择树中任何一个节点作为根。当选择节点 作为根节点时,设结果树的高度为 。在所有可能的树中,具有最小高度的树(即,)被称为 最小高度树 。请你找到所有的 最小高度树 并按 任原创 2022-07-06 18:40:29 · 80 阅读 · 0 评论 -
264. 丑数 II
264. 丑数 II难度中等920收藏分享切换为英文接收动态反馈给你一个整数 ,请你找出并返回第 个 丑数 。丑数 就是只包含质因数 、 和/或 的正整数。示例 1:输入:n = 10输出:12解释:[1, 2, 3, 4, 5, 6, 8, 9, 10, 12] 是由前 10 个丑数组成的序列。示例 2:输入:n = 1输出:1解释:1 通常被视为丑数。提示:...原创 2022-07-05 18:33:17 · 102 阅读 · 0 评论 -
213. 打家劫舍 II
213. 打家劫舍 II难度中等1065收藏分享切换为英文接收动态反馈你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。给定一个代表每个房屋存放金额的非负整数数组,计算你 在不触动警报装置的情况下 ,今晚能够偷窃到的最高金额。示例 1:输入:nums = [2,3,2]输出:3解释:你不能先偷窃 1 号房屋(金额原创 2022-06-17 15:13:02 · 58 阅读 · 0 评论 -
113. 路径总和 II
113. 路径总和 II难度中等768收藏分享切换为英文接收动态反馈给你二叉树的根节点 和一个整数目标和 ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。叶子节点 是指没有子节点的节点。示例 1: 输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22输出:[[5,4,11,2],[5,8,4,5]]示例 2: 输入:root = [1,2,3], targetSum = 5输出:[]示例 3:原创 2022-06-17 11:00:47 · 148 阅读 · 0 评论 -
347. 前 K 个高频元素
347. 前 K 个高频元素难度中等1227收藏分享切换为英文接收动态反馈给你一个整数数组 和一个整数 ,请你返回其中出现频率前 高的元素。你可以按 任意顺序 返回答案。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]提示:进阶:你所设计算法的时间复杂度 必须 优于 ,其中 是数组大小。首先依旧使用哈希表统计频率,统计完成后,创建一个数组,将频率作为数组下标,对于出现频率不原创 2022-06-16 17:57:26 · 75 阅读 · 0 评论 -
337. 打家劫舍 III
337. 打家劫舍 III难度中等1265小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为root。除了root之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。给定二叉树的root。返回在不触动警报的情况下,小偷能够盗取的最高金额。示例 1:输入: root = [3,2,3,null,3,n...原创 2022-04-26 10:31:39 · 98 阅读 · 0 评论 -
331. 验证二叉树的前序序列化
331. 验证二叉树的前序序列化难度中等376序列化二叉树的一种方法是使用前序遍历。当我们遇到一个非空节点时,我们可以记录下这个节点的值。如果它是一个空节点,我们可以使用一个标记值记录,例如#。例如,上面的二叉树可以被序列化为字符串"9,3,4,#,#,1,#,#,2,#,6,#,#",其中#代表一个空节点。给定一串以逗号分隔的序列,验证它是否是正确的二叉树的前序序列化。编写一个在不重构树的条件下的可行算法。保证每个以逗号分隔的字符或为一个整数或为一个表示null指...原创 2022-04-26 12:00:20 · 201 阅读 · 0 评论 -
260. 只出现一次的数字 III
260. 只出现一次的数字 III难度中等620收藏分享切换为英文接收动态反馈给定一个整数数组 ,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。进阶:你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现?示例 1:输入:nums = [1,2,1,3,2,5]输出:[3,5]解释:[5, 3] 也是有效的答案。示例 2:输入:nums = [-1,0]输出:[-1,0]示例 3:输入:nums = [0,原创 2022-06-16 18:34:07 · 88 阅读 · 0 评论 -
211. 添加与搜索单词 - 数据结构设计
211. 添加与搜索单词 - 数据结构设计难度中等434收藏分享切换为英文接收动态反馈请你设计一个数据结构,支持 添加新单词 和 查找字符串是否与任何先前添加的字符串匹配 。实现词典类 :示例:输入:["WordDictionary","addWord","addWord","addWord","search","search","search","se原创 2022-06-16 17:03:04 · 97 阅读 · 0 评论 -
209. 长度最小的子数组
209. 长度最小的子数组难度中等1203收藏分享切换为英文接收动态反馈给定一个含有 个正整数的数组和一个正整数 。找出该数组中满足其和 的长度最小的 连续子数组 ,并返回其长度。如果不存在符合条件的子数组,返回 。...原创 2022-06-15 11:33:57 · 94 阅读 · 0 评论 -
189. 轮转数组
189. 轮转数组难度中等1507收藏分享切换为英文接收动态反馈给你一个数组,将数组中的元素向右轮转 个位置,其中 是非负数。原创 2022-06-13 11:57:35 · 157 阅读 · 0 评论 -
130. 被围绕的区域
130. 被围绕的区域难度中等815收藏分享切换为英文接收动态反馈给你一个 的矩阵 ,由若干字符 和 ,找到所有被 围绕的区域,并将这些区域里所有的 用 填充。原创 2022-06-13 11:43:10 · 122 阅读 · 0 评论 -
106. 从中序与后序遍历序列构造二叉树
106. 从中序与后序遍历序列构造二叉树难度中等726给定两个整数数组inorder和postorder,其中inorder是二叉树的中序遍历,postorder是同一棵树的后序遍历,请你构造并返回这颗二叉树。示例 1:输入:inorder = [9,3,15,20,7], postorder = [9,15,7,20,3]输出:[3,9,20,null,null,15,7]示例 2:输入:inorder = [-1], postorder = [...原创 2022-04-23 20:45:45 · 422 阅读 · 0 评论 -
105. 从前序与中序遍历序列构造二叉树
105. 从前序与中序遍历序列构造二叉树难度中等1554收藏分享切换为英文接收动态反馈给定两个整数数组preorder和inorder,其中preorder是二叉树的先序遍历,inorder是同一棵树的中序遍历,请构造二叉树并返回其根节点。示例 1:输入: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]输出: [3,9,20,null,null,15,7]示例 2:输入: preorder = [-1...原创 2022-04-23 20:44:33 · 518 阅读 · 0 评论 -
99. 恢复二叉搜索树
99. 恢复二叉搜索树难度中等705收藏分享切换为英文接收动态反馈给你二叉搜索树的根节点root,该树中的恰好两个节点的值被错误地交换。请在不改变其结构的情况下,恢复这棵树。示例 1:输入:root = [1,3,null,null,2]输出:[3,1,null,null,2]解释:3 不能是 1 的左孩子,因为 3 > 1 。交换 1 和 3 使二叉搜索树有效。示例 2:输入:root = [3,1,4,null,null,2]输出:[2,1...原创 2022-04-23 20:43:34 · 98 阅读 · 0 评论 -
95. 不同的二叉搜索树 II
95. 不同的二叉搜索树 II难度中等1188收藏分享切换为英文接收动态反馈给你一个整数n,请你生成并返回所有由n个节点组成且节点值从1到n互不相同的不同二叉搜索树。可以按任意顺序返回答案。示例 1:输入:n = 3输出:[[1,null,2,null,3],[1,null,3,2],[2,1,3],[3,1,null,null,2],[3,2,null,1]]示例 2:输入:n = 1输出:[[1]]提示:1 <= n ......原创 2022-04-23 20:42:37 · 421 阅读 · 0 评论 -
90. 子集 II
90. 子集 II难度中等809给你一个整数数组nums,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。返回的解集中,子集可以按任意顺序排列。示例 1:输入:nums = [1,2,2]输出:[[],[1],[1,2],[1,2,2],[2],[2,2]]示例 2:输入:nums = [0]输出:[[],[0]]提示:1 <= nums.length <= 10 -10 <= num...原创 2022-04-23 20:41:07 · 85 阅读 · 0 评论 -
86. 分隔链表
86. 分隔链表难度中等550收藏分享切换为英文接收动态反馈给你一个链表的头节点head和一个特定值x,请你对链表进行分隔,使得所有小于x的节点都出现在大于或等于x的节点之前。你应当保留两个分区中每个节点的初始相对位置。示例 1:输入:head = [1,4,3,2,5,2], x = 3输出:[1,2,2,4,3,5]示例 2:输入:head = [2,1], x = 2输出:[1,2]提示:链表中节点的数目在范围[0,...原创 2022-04-23 20:33:53 · 79 阅读 · 0 评论 -
82. 删除排序链表中的重复元素 II
82. 删除排序链表中的重复元素 II难度中等870收藏分享切换为英文接收动态反馈给定一个已排序的链表的头head,删除原始链表中所有重复数字的节点,只留下不同的数字。返回已排序的链表。示例 1:输入:head = [1,2,3,3,4,4,5]输出:[1,2,5]示例 2:输入:head = [1,1,1,2,3]输出:[2,3]提示:链表中节点数目在范围[0, 300]内 -100 <= Node.val <= 1...原创 2022-04-23 20:32:45 · 457 阅读 · 0 评论 -
78. 子集
78. 子集难度中等1602收藏分享切换为英文接收动态反馈给你一个整数数组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 <= ...原创 2022-04-23 20:31:40 · 49 阅读 · 0 评论 -
77. 组合
77. 组合难度中等953收藏分享切换为英文接收动态反馈给定两个整数n和k,返回范围[1, n]中所有可能的k个数的组合。你可以按任何顺序返回答案。示例 1:输入:n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]示例 2:输入:n = 1, k = 1输出:[[1]]提示:1 <= n <= 20 1 <= k <=...原创 2022-04-23 20:20:53 · 266 阅读 · 0 评论 -
74. 搜索二维矩阵
74. 搜索二维矩阵难度中等629编写一个高效的算法来判断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],[23,30,34,60]]...原创 2022-04-23 20:19:21 · 130 阅读 · 0 评论 -
11. Container With Most Water
11. Container With Most Water难度中等1439Givennnon-negative integersa1,a2, ...,an, where each represents a point at coordinate (i,ai).nvertical lines are drawn such that the two endpoints of lineiis at (i,ai) and (i, 0). Find two lines, which t...原创 2020-05-18 13:00:26 · 123 阅读 · 0 评论