![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode错题本
向盟约宣誓
中二病
展开
-
leetcode 586. 订单最多的客户
customer_number 为 '3' 的顾客有两个订单,比顾客 '1' 或者 '2' 都要多,因为他们只有一个订单。所以结果是该顾客的 customer_number ,也就是 3。如果有多位顾客订单数并列最多,你能找到他们所有的。Order_number是该表的主键。此表包含关于订单ID和客户ID的信息。比任何其他客户下了更多的订单。编写一个SQL查询,为下了。查询结果格式如下所示。原创 2023-03-21 17:45:35 · 226 阅读 · 0 评论 -
leetcode 1145. 二叉树着色游戏
每一回合,玩家选择一个被他染过色的节点,将所选节点一个 未着色 的邻节点(即左右子节点、或父节点)进行染色(「一号」玩家染红色,「二号」玩家染蓝色)。游戏中,给出二叉树的根节点 root,树上总共有 n 个节点,且 n 为奇数,其中每个节点上的值从 1 到 n 各不相同。输入:root = [1,2,3,4,5,6,7,8,9,10,11], n = 11, x = 3。「一号」玩家给值为 x 的节点染上红色,而「二号」玩家给值为 y 的节点染上蓝色。若两个玩家都没有可以染色的节点时,游戏结束。原创 2023-02-05 23:25:29 · 323 阅读 · 1 评论 -
leetcode 1824. 最少侧跳次数
给你一个长度为 n + 1 的数组 obstacles ,其中 obstacles[i] (取值范围从 0 到 3)表示在点 i 处的 obstacles[i] 跑道上有一个障碍。这只青蛙从点 i 跳到点 i + 1 且跑道不变的前提是点 i + 1 的同一跑道上没有障碍。为了躲避障碍,这只青蛙也可以在 同一个 点处 侧跳 到 另外一条 跑道(这两条跑道可以不相邻),但前提是跳过去的跑道该点处没有障碍。比方说,这只青蛙可以从点 3 处的跑道 3 跳到点 3 处的跑道 1。总共有 2 次侧跳(红色箭头)。原创 2023-01-28 16:50:24 · 558 阅读 · 0 评论 -
leetcode 1658. 将 x 减到 0 的最小操作数
给你一个整数数组 nums 和一个整数 x。每一次操作时,你应当移除数组 nums 最左边或最右边的元素,然后从 x 中减去该元素的值。解释:最佳解决方案是移除后三个元素和前两个元素(总共 5 次操作),将 x 减到 0。否则,返回 -1。输入:nums = [3,2,20,1,1,3], x = 10。输入:nums = [1,1,4,2,3], x = 5。解释:最佳解决方案是移除后两个元素,将 x 减到 0。输入:nums = [5,6,7,8,9], x = 4。原创 2023-01-07 09:38:14 · 604 阅读 · 1 评论 -
leetcode 1802. 有界数组中指定下标处的最大值
解释:数组 [1,1,2,1] 和 [1,2,2,1] 满足所有条件。abs(nums[i] - nums[i+1])原创 2023-01-05 18:09:47 · 203 阅读 · 1 评论 -
【再练回溯法】leetcode 46. 全排列
输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列。你可以 按任意顺序 返回答案。输入:nums = [1,2,3]输出:[[0,1],[1,0]]nums 中的所有整数 互不相同。输入:nums = [0,1]输入:nums = [1]原创 2022-12-13 21:27:44 · 297 阅读 · 2 评论 -
leetcode 200. 岛屿数量
以上代码思路为并查集,特别需要注意finds函数的应用,迭代,每次find都找到最深的根。在此基础上新增在遍历矩阵时先求出连通体数量result,然后每次合并时result--。给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。grid[i][j] 的值为 '0' 或 '1'此外,你可以假设该网格的四条边均被水包围。输入:grid = [输入:grid = [原创 2022-12-11 17:18:07 · 71 阅读 · 0 评论 -
leetcode 1742. 盒子中小球的最大数量
例如,编号 321 的小球应当放入编号 3 + 2 + 1 = 6 的盒子,而编号 10 的小球应当放入编号 1 + 0 = 1 的盒子。编号 5 和 6 的盒子放有最多小球,每个盒子中的小球数量都是 2。小球数量:0 1 1 1 1 1 1 1 1 2 0 0 ...小球数量:2 1 1 1 1 1 1 1 1 0 0 ...小球数量:1 1 1 1 2 2 1 1 1 0 0 ...编号 10 的盒子放有最多小球,小球数量为 2。编号 1 的盒子放有最多小球,小球数量为 2。原创 2022-11-23 09:17:42 · 132 阅读 · 0 评论 -
leetcode 429. N 叉树的层序遍历
输入:root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]同时,while里面先求队列的size(说明队列可以求size)再对size循环需要掌握。输出:[[1],[2,3,4,5],[6,7,8,9,10],[11,12,13],[14]]输入:root = [1,null,3,2,4,null,5,6]输出:[[1],[3,2,4],[5,6]]原创 2022-11-01 22:24:02 · 64 阅读 · 0 评论 -
leetcode 907. 子数组的最小值之和(重做)
给定一个整数数组 arr,找到 min(b) 的总和,其中 b 的范围为 arr 的每个(连续)子数组。由于答案可能很大,因此 返回答案模 10^9 + 7 。示例 1:输入:arr = [3,1,2,4]输出:17解释:子数组为 [3],[1],[2],[4],[3,1],[1,2],[2,4],[3,1,2],[1,2,4],[3,1,2,4]。 最小值为 3,1,2,4,1,1,2,1,1,1,和为 17。示例 2:输入:arr = [11,81,94,43,3]输出:444 提示:1原创 2022-10-30 11:05:53 · 253 阅读 · 0 评论 -
leetcode 904. 水果成篮
输入:fruits = [3,3,3,1,2,1,1,2,3,3,4]一旦你走到某棵树前,但水果不符合篮子的水果类型,那么就必须停止采摘。如果从第一棵树开始采摘,则只能采摘 [0,1] 这两棵树。如果从第一棵树开始采摘,则只能采摘 [1,2] 这两棵树。解释:可以采摘 [1,2,1,1,2] 这五棵树。输入:fruits = [1,2,3,2,2]解释:可以采摘 [2,3,2,2] 这四棵树。输入:fruits = [0,1,2,2]解释:可以采摘 [1,2,2] 这三棵树。解释:可以采摘全部 3 棵树。原创 2022-10-18 23:16:40 · 97 阅读 · 0 评论 -
leetcode 1441. 用栈操作构建数组
每次迭代,需要从 list = { 1 , 2 , 3 ..., n } 中依次读取一个数字。"Push":从 list 中读取一个新元素, 并将其推入数组中。输出:["Push","Push","Pop","Push"]输入:target = [1,2,3], n = 3。输出:["Push","Push","Push"]输入:target = [1,3], n = 3。输入:target = [1,2], n = 4。"Pop":删除数组中的最后一个元素。输出:["Push","Push"]原创 2022-10-16 19:24:39 · 70 阅读 · 0 评论 -
leetcode 面试题 17.09. 第 k 个数
有些数的素因子只有 3,5,7,请设计一个算法找出第 k 个数。注意,不是必须有这些素因子,而是必须不包含其他的素因子。例如,前几个数按顺序应该是 1,3,5,7,9,15,21。原创 2022-09-30 16:25:57 · 98 阅读 · 0 评论 -
leetcode 面试题 01.09. 字符串轮转
给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成(比如,waterbottle是erbottlewat旋转后的字符串)。输入:s1 = "waterbottle", s2 = "erbottlewat"输入:s1 = "aa", s2 = "aba"字符串长度在[0, 100000]范围内。你能只调用一次检查子串的方法吗?原创 2022-09-30 15:58:40 · 206 阅读 · 0 评论 -
leetcode 442. 数组中重复的数据
给你一个长度为 n 的整数数组 nums ,其中 nums 的所有整数都在范围 [1, n] 内,且每个整数出现 一次 或 两次 。请你找出所有出现 两次 的整数,并以数组形式返回。你必须设计并实现一个时间复杂度为 O(n) 且仅使用常量额外空间的算法解决此问题。示例 1:输入:nums = [4,3,2,7,8,2,3,1]输出:[2,3]示例 2:输入:nums = [1,1,2]输出:[1]示例 3:输入:nums = [1]输出:[]提示:n == nu.原创 2022-05-23 23:38:26 · 75 阅读 · 0 评论 -
leetcode 1823. 找出游戏的获胜者
共有 n 名小伙伴一起做游戏。小伙伴们围成一圈,按 顺时针顺序 从 1 到 n 编号。确切地说,从第 i 名小伙伴顺时针移动一位会到达第 (i+1) 名小伙伴的位置,其中 1 <= i < n ,从第 n 名小伙伴顺时针移动一位会回到第 1 名小伙伴的位置。游戏遵循如下规则:从第 1 名小伙伴所在位置 开始 。沿着顺时针方向数 k 名小伙伴,计数时需要 包含 起始时的那位小伙伴。逐个绕圈进行计数,一些小伙伴可能会被数过不止一次。你数到的最后一名小伙伴需要离开圈子,并视作输掉游戏。如原创 2022-05-23 21:19:08 · 166 阅读 · 0 评论 -
leetcode 713. 乘积小于 K 的子数组
给你一个整数数组 nums 和一个整数 k ,请你返回子数组内所有元素的乘积严格小于 k 的连续子数组的数目。示例 1:输入:nums = [10,5,2,6], k = 100输出:8解释:8 个乘积小于 100 的子数组分别为:[10]、[5]、[2],、[6]、[10,5]、[5,2]、[2,6]、[5,2,6]。需要注意的是 [10,5,2] 并不是乘积小于 100 的子数组。示例 2:输入:nums = [1,2,3], k = 0输出:0提示:1 <...原创 2022-05-23 18:16:44 · 114 阅读 · 0 评论 -
leetcode 386. 字典序排数
给你一个整数 n ,按字典序返回范围 [1, n] 内所有整数。你必须设计一个时间复杂度为 O(n) 且使用 O(1) 额外空间的算法。示例 1:输入:n = 13输出:[1,10,11,12,13,2,3,4,5,6,7,8,9]示例 2:输入:n = 2输出:[1,2]提示:1 <= n <= 5 * 104来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/lexicographical-numb.原创 2022-04-18 10:55:17 · 97 阅读 · 0 评论 -
leetcode 560. 和为 K 的子数组
给你一个整数数组 nums 和一个整数k ,请你统计并返回 该数组中和为k的子数组的个数。示例 1:输入:nums = [1,1,1], k = 2输出:2示例 2:输入:nums = [1,2,3], k = 3输出:2提示:1 <= nums.length <= 2 * 104-1000 <= nums[i] <= 1000-107 <= k <= 107通过次数211,857提交次数470,812来源:力扣(Lee...原创 2022-04-14 11:47:57 · 290 阅读 · 0 评论 -
leetcode 435. 无重叠区间
给定一个区间的集合 intervals ,其中 intervals[i] = [starti, endi] 。返回 需要移除区间的最小数量,使剩余区间互不重叠 。示例 1:输入: intervals = [[1,2],[2,3],[3,4],[1,3]]输出: 1解释: 移除 [1,3] 后,剩下的区间没有重叠。示例 2:输入: intervals = [ [1,2], [1,2], [1,2] ]输出: 2解释: 你需要移除两个 [1,2] 来使剩下的区间没有重叠。示例 3:原创 2022-04-13 11:38:21 · 181 阅读 · 0 评论 -
leetcode 238. 除自身以外数组的乘积
给你一个整数数组nums,返回 数组answer,其中answer[i]等于nums中除nums[i]之外其余各元素的乘积。题目数据 保证 数组nums之中任意元素的全部前缀元素和后缀的乘积都在32 位 整数范围内。请不要使用除法,且在O(n) 时间复杂度内完成此题。示例 1:输入: nums = [1,2,3,4]输出: [24,12,8,6]示例 2:输入: nums = [-1,1,0,-3,3]输出: [0,0,9,0,0]提示:...原创 2022-04-12 14:47:42 · 151 阅读 · 0 评论 -
334. 递增的三元子序列
给你一个整数数组nums ,判断这个数组中是否存在长度为 3 的递增子序列。如果存在这样的三元组下标 (i, j, k)且满足 i < j < k ,使得nums[i] < nums[j] < nums[k] ,返回 true ;否则,返回 false 。示例 1:输入:nums = [1,2,3,4,5]输出:true解释:任何 i < j < k 的三元组都满足题意示例 2:输入:nums = [5,4,3,2,1]输出:false...原创 2022-04-12 11:09:25 · 121 阅读 · 0 评论 -
leetcode 240. 搜索二维矩阵 II
编写一个高效的算法来搜索mxn矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例 1:输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5输出:true示例 2:输入:matrix = [[1,4,7,11,15],[2,5,8,12,19]...原创 2022-04-11 16:25:55 · 112 阅读 · 0 评论 -
leetcode 75. 颜色分类
给定一个包含红色、白色和蓝色、共n 个元素的数组nums,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。我们使用整数 0、1 和 2 分别表示红色、白色和蓝色。必须在不使用库的sort函数的情况下解决这个问题。示例 1:输入:nums = [2,0,2,1,1,0]输出:[0,0,1,1,2,2]示例 2:输入:nums = [2,0,1]输出:[0,1,2]提示:n == nums.length1 <= n <=...原创 2022-04-02 11:08:05 · 80 阅读 · 0 评论 -
leetcode 954. 二倍数对数组
给定一个长度为偶数的整数数组 arr,只有对 arr 进行重组后可以满足 “对于每个 0 <=i < len(arr) / 2,都有 arr[2 * i + 1] = 2 * arr[2 * i]”时,返回 true;否则,返回 false。示例 1:输入:arr = [3,1,3,6]输出:false示例 2:输入:arr = [2,1,2,6]输出:false示例 3:输入:arr = [4,-2,2,-4]输出:true解释:可以用 [-2,-4] 和 ..原创 2022-04-01 22:32:59 · 220 阅读 · 0 评论 -
leetcode 15. 三数之和
给你一个包含 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]输出:[]提示:0 <= nums.length <= 300...原创 2022-04-01 11:02:11 · 68 阅读 · 0 评论 -
leetcode 2024. 考试的最大困扰度
一位老师正在出一场由 n道判断题构成的考试,每道题的答案为 true (用 'T' 表示)或者 false (用 'F'表示)。老师想增加学生对自己做出答案的不确定性,方法是最大化有 连续相同结果的题数。(也就是连续出现 true 或者连续出现 false)。给你一个字符串answerKey,其中answerKey[i]是第 i个问题的正确结果。除此以外,还给你一个整数 k,表示你能进行以下操作的最多次数:每次操作中,将问题的正确答案改为'T' 或者'F'(也就是将 an...原创 2022-03-29 17:17:57 · 771 阅读 · 0 评论 -
leetcode 693. 交替位二进制数
给定一个正整数,检查它的二进制表示是否总是 0、1 交替出现:换句话说,就是二进制表示中相邻两位的数字永不相同。示例 1:输入:n = 5输出:true解释:5 的二进制表示是:101示例 2:输入:n = 7输出:false解释:7 的二进制表示是:111.示例 3:输入:n = 11输出:false解释:11 的二进制表示是:1011.提示:1 <= n <= 231 - 1来源:力扣(LeetCode)链接:https://leetco.原创 2022-03-28 10:44:42 · 72 阅读 · 0 评论 -
leetcode 440. 字典序的第K小数字
给定整数n和k,返回[1, n]中字典序第k小的数字。示例 1:输入: n = 13, k = 2输出: 10解释: 字典序的排列是 [1, 10, 11, 12, 13, 2, 3, 4, 5, 6, 7, 8, 9],所以第二小的数字是 10。示例 2:输入: n = 1, k = 1输出: 1提示:1 <= k <= n <= 109来源:力扣(LeetCode)链接:https://leetcode-cn.com/probl...原创 2022-03-24 12:47:35 · 150 阅读 · 0 评论 -
leetcode 661. 图片平滑器
图像平滑器 是大小为3 x 3 的过滤器,用于对图像的每个单元格平滑处理,平滑处理后单元格的值为该单元格的平均灰度。每个单元格的平均灰度 定义为:该单元格自身及其周围的 8 个单元格的平均值,结果需向下取整。(即,需要计算蓝色平滑器中 9 个单元格的平均值)。如果一个单元格周围存在单元格缺失的情况,则计算平均灰度时不考虑缺失的单元格(即,需要计算红色平滑器中 4 个单元格的平均值)。给你一个表示图像灰度的 m x n 整数矩阵 img ,返回对图像的每个单元格平滑处理后的图像。示...原创 2022-03-24 10:23:39 · 114 阅读 · 0 评论 -
leetcode 45. 跳跃游戏 II
给你一个非负整数数组nums ,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。假设你总是可以到达数组的最后一个位置。示例 1:输入: nums = [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 0 跳到下标为 1 的位置,跳1步,然后跳3步到达数组的最后一个位置。示例 2:输入: nums = [2,3,0,1,4]输出: 2...原创 2022-03-21 22:10:21 · 105 阅读 · 0 评论 -
leetcode 22. 括号生成
数字 n代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例 1:输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2:输入:n = 1输出:["()"]提示:1 <= n <= 8来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/generate-parentheses著作权归领扣网络所有。商业..原创 2022-03-21 20:45:09 · 170 阅读 · 0 评论 -
leetcode 653. 两数之和 IV - 输入 BST
给定一个二叉搜索树 root 和一个目标结果 k,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。示例 1:输入: root = [5,3,6,2,4,null,7], k = 9输出: true示例 2:输入: root = [5,3,6,2,4,null,7], k = 28输出: false提示:二叉树的节点个数的范围是[1, 104].-104<= Node.val <= 104root为二叉搜索树-105...原创 2022-03-21 10:14:53 · 269 阅读 · 0 评论 -
leetcode 606. 根据二叉树创建字符串
你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。空节点则用一对空括号 "()" 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。示例 1:输入: 二叉树: [1,2,3,4] 1 / \ 2 3 / 4 输出: "1(2(4))(3)"解释: 原本将是“1(2(4)())(3())”,在你省略所有不必要的空括号对之后,它将是“1(2(4))(3)”。示例 ...原创 2022-03-19 16:35:41 · 63 阅读 · 0 评论 -
leetcode 90. 子集 II
给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。示例 1:输入:nums = [1,2,2]输出:[[],[1],[1,2],[1,2,2],[2],[2,2]]示例 2:输入:nums = [0]输出:[[],[0]]提示:1 <= nums.length <= 10-10 <= nums[i] <= 10class Solu.原创 2022-03-18 11:48:42 · 260 阅读 · 0 评论 -
leetcode 131. 分割回文串
给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。回文串 是正着读和反着读都一样的字符串。示例 1:输入:s = "aab"输出:[["a","a","b"],["aa","b"]]示例 2:输入:s = "a"输出:[["a"]]提示:1 <= s.length <= 16s 仅由小写英文字母组成class Solution {public: vector<string>t.原创 2022-03-17 17:18:40 · 721 阅读 · 0 评论 -
leetcode 40. 组合总和 II
给定一个候选人编号的集合candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的每个数字在每个组合中只能使用一次。注意:解集不能包含重复的组合。示例1:输入: candidates =[10,1,2,7,6,1,5], target =8,输出:[[1,1,6],[1,2,5],[1,7],[2,6]]示例2:输入: candidates =[2,5,2,1...原创 2022-03-17 11:10:15 · 73 阅读 · 0 评论 -
leetcode 216. 组合总和 III
找出所有相加之和为 n 的 k 个数的组合,且满足下列条件:只使用数字1到9每个数字最多使用一次返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。示例 1:输入: k = 3, n = 7输出: [[1,2,4]]解释:1 + 2 + 4 = 7没有其他符合的组合了。示例 2:输入: k = 3, n = 9输出: [[1,2,6], [1,3,5], [2,3,4]]解释:1 + 2 + 6 = 91 + 3 + 5 = ..原创 2022-03-16 20:28:44 · 209 阅读 · 0 评论 -
leetcode 77. 组合
给定两个整数 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 <= 201 <= k <= nclass Solution {public: ve...原创 2022-03-16 19:48:27 · 419 阅读 · 0 评论 -
leetcode 542. 01 矩阵
给定一个由 0 和 1 组成的矩阵 mat,请输出一个大小相同的矩阵,其中每一个格子是 mat 中对应位置元素到最近的 0 的距离。两个相邻元素间的距离为 1 。示例 1:输入:mat = [[0,0,0],[0,1,0],[0,0,0]]输出:[[0,0,0],[0,1,0],[0,0,0]]示例 2:输入:mat = [[0,0,0],[0,1,0],[1,1,1]]输出:[[0,0,0],[0,1,0],[1,2,1]]提示:m == mat.lengthn ..原创 2022-03-16 11:49:43 · 204 阅读 · 0 评论