leetcode
文章平均质量分 67
Qin酱
这个人是个懒狗,什么都没有留下。
展开
-
leetcode 332. 重新安排行程
332. 重新安排行程给定一个机票的字符串二维数组 [from, to],子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进行重新规划排序。所有这些机票都属于一个从 JFK(肯尼迪国际机场)出发的先生,所以该行程必须从 JFK 开始。说明:如果存在多种有效的行程,你可以按字符自然排序返回最小的行程组合。例如,行程 [“JFK”, “LGA”] 与 [“JFK”, “LGB”] 相比就更小,排序更靠前所有的机场都用三个大写字母表示(机场代码)。假定所有机票至少存在一种合理的行程。示例原创 2020-08-27 15:34:04 · 181 阅读 · 0 评论 -
leetcode LCP 02. 分式化简
LCP 02. 分式化简有一个同学在学习分式。他需要将一个连分数化成最简分数,你能帮助他吗?连分数是形如上图的分式。在本题中,所有系数都是大于等于0的整数。输入的cont代表连分数的系数(cont[0]代表上图的a0,以此类推)。返回一个长度为2的数组[n, m],使得连分数的值等于n / m,且n, m最大公约数为1。示例 1:输入:cont = [3, 2, 0, 2]输出:[13, 4]解释:原连分数等价于3 + (1 / (2 + (1 / (0 + 1 / 2))))。注意[26,原创 2020-08-17 18:56:17 · 220 阅读 · 0 评论 -
leetcode LCP 03. 机器人大冒险
LCP 03. 机器人大冒险力扣团队买了一个可编程机器人,机器人初始位置在原点(0, 0)。小伙伴事先给机器人输入一串指令command,机器人就会无限循环这条指令的步骤进行移动。指令有两种:U: 向y轴正方向移动一格R: 向x轴正方向移动一格。不幸的是,在 xy 平面上还有一些障碍物,他们的坐标用obstacles表示。机器人一旦碰到障碍物就会被损毁。给定终点坐标(x, y),返回机器人能否完好地到达终点。如果能,返回true;否则返回false。示例 1:输入:command = “URR原创 2020-08-17 18:19:41 · 258 阅读 · 0 评论 -
leetcode 5489. 两球之间的磁力
5489. 两球之间的磁力在代号为 C-137 的地球上,Rick 发现如果他将两个球放在他新发明的篮子里,它们之间会形成特殊形式的磁力。Rick 有 n 个空的篮子,第 i 个篮子的位置在 position[i] ,Morty 想把 m 个球放到这些篮子里,使得任意两球间 最小磁力 最大。已知两个球如果分别位于 x 和 y ,那么它们之间的磁力为 |x - y| 。给你一个整数数组 position 和一个整数 m ,请你返回最大化的最小磁力。示例 1:输入:position = [1,2,3原创 2020-08-16 14:56:24 · 218 阅读 · 0 评论 -
leetcode 剑指 Offer 40. 最小的k个数
剑指 Offer 40. 最小的k个数输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。示例 1:输入:arr = [3,2,1], k = 2输出:[1,2] 或者 [2,1]示例 2:输入:arr = [0,1,2,1], k = 1输出:[0]限制:0 <= k <= arr.length <= 100000 <= arr[i] <= 10000class Sol原创 2020-08-14 10:37:58 · 83 阅读 · 0 评论 -
leetcode 918. 环形子数组的最大和
918. 环形子数组的最大和给定一个由整数数组 A 表示的环形数组 C,求 C 的非空子数组的最大可能和。在此处,环形数组意味着数组的末端将会与开头相连呈环状。(形式上,当0 <= i < A.length 时 C[i] = A[i],而当 i >= 0 时 C[i+A.length] = C[i])此外,子数组最多只能包含固定缓冲区 A 中的每个元素一次。(形式上,对于子数组 C[i], C[i+1], …, C[j],不存在 i <= k1, k2 <= j 其中 k原创 2020-08-13 23:21:01 · 223 阅读 · 1 评论 -
leetcode 399. 除法求值
399. 除法求值给出方程式 A / B = k, 其中 A 和 B 均为用字符串表示的变量, k 是一个浮点型数字。根据已知方程式求解问题,并返回计算结果。如果结果不存在,则返回 -1.0。示例 :给定 a / b = 2.0, b / c = 3.0问题: a / c = ?, b / a = ?, a / e = ?, a / a = ?, x / x = ?返回 [6.0, 0.5, -1.0, 1.0, -1.0 ]输入为: vector<pair<string, stri原创 2020-08-13 21:28:56 · 133 阅读 · 0 评论 -
leetcode 416. 分割等和子集
416. 分割等和子集给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。注意:每个数组中的元素不会超过 100数组的大小不会超过 200示例 1:输入: [1, 5, 11, 5]输出: true解释: 数组可以分割成 [1, 5, 5] 和 [11].示例 2:输入: [1, 2, 3, 5]输出: false解释: 数组不能分割成两个元素和相等的子集.这是典型的01背包问题的变形。因为这里是一个满足一个固定的背包值。设定dp[i][原创 2020-08-13 18:42:40 · 317 阅读 · 0 评论 -
leetcode 647. 回文子串
647. 回文子串给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。示例 1:输入: “abc”输出: 3解释: 三个回文子串: “a”, “b”, “c”.示例 2:输入: “aaa”输出: 6说明: 6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa”.注意:输入的字符串长度不会超过1000。回文的数据量不大,所以可以考虑使用O(N*N)的方法。首先是动态原创 2020-08-13 15:49:30 · 318 阅读 · 0 评论 -
leetcode 剑指 Offer 65. 不用加减乘除做加法
剑指 Offer 65. 不用加减乘除做加法写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。示例:输入: a = 1, b = 1输出: 2提示:a, b 均可能是负数或 0结果不会溢出 32 位整数在使用位运算计算数值的时候,注意有可能有负值参与计算,看大佬的解释print(hex(1)) # = 0x1 补码print(hex(-1)) # = -0x1 负号 + 原码 ( Python 特色,Java 会直接输出补码)pr原创 2020-08-12 23:58:42 · 729 阅读 · 0 评论 -
leetcode 剑指 Offer 64. 求1+2+…+n
剑指 Offer 64. 求1+2+…+n求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。示例 1:输入: n = 3输出: 6示例 2:输入: n = 9输出: 45下面这样的写法是位运算的写法,但是使用了一些关键字,所以不可取class Solution: def sumNums(self, n: int) -> int: #加法的位运算,递归的时候转化为 和 与原创 2020-08-12 23:04:07 · 93 阅读 · 0 评论 -
leetcode 剑指 Offer 62. 圆圈中最后剩下的数字
剑指 Offer 62. 圆圈中最后剩下的数字0,1,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。示例 1:输入: n = 5, m = 3输出: 3示例 2:输入: n = 10, m = 17输出: 2限制:1 <= n <= 10^51 <= m <原创 2020-08-12 21:22:01 · 156 阅读 · 0 评论 -
leetcode 剑指 Offer 61. 扑克牌中的顺子
剑指 Offer 61. 扑克牌中的顺子从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。示例 1:输入: [1,2,3,4,5]输出: True示例 2:输入: [0,0,1,2,5]输出: True限制:数组长度为 5数组的数取值为 [0, 13] .首先对数组排序,统计0 的个数和看是否有重复的非0元数出现。接着就对数据大小进行分析,当非0的原创 2020-08-12 19:06:06 · 121 阅读 · 0 评论 -
leetcode 剑指 Offer 59 - II. 队列的最大值
剑指 Offer 59 - II. 队列的最大值请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。若队列为空,pop_front 和 max_value 需要返回 -1示例 1:输入:[“MaxQueue”,“push_back”,“push_back”,“max_value”,“pop_front”,“max_value”][[],[1],[2],[],[],[]]输出: [原创 2020-08-12 18:38:42 · 101 阅读 · 0 评论 -
leetcode 剑指 Offer 57 - II. 和为s的连续正数序列
剑指 Offer 57 - II. 和为s的连续正数序列输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。示例 1:输入:target = 9输出:[[2,3,4],[4,5]]示例 2:输入:target = 15输出:[[1,2,3,4,5],[4,5,6],[7,8]]限制:1 <= target <= 10^5这道题使用滑动窗口的方法,起始我这里可以不建立数组原创 2020-08-12 16:27:50 · 167 阅读 · 0 评论 -
leetcode 剑指 Offer 56 - I. 数组中数字出现的次数
剑指 Offer 56 - I. 数组中数字出现的次数一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。示例 1:输入:nums = [4,1,4,6]输出:[1,6] 或 [6,1]示例 2:输入:nums = [1,2,10,4,1,4,3,3]输出:[2,10] 或 [10,2]限制:2 <= nums.length <= 10000这道题我知道是用异或解答,但是我们对整原创 2020-08-12 15:17:37 · 213 阅读 · 0 评论 -
leetcode 剑指 Offer 51. 数组中的逆序对
剑指 Offer 51. 数组中的逆序对在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。示例 1:输入: [7,5,6,4]输出: 5限制:0 <= 数组长度 <= 50000以下内容部分来自威威大佬:作者:liweiwei1419链接:https://leetcode-cn.com/problems/shu-zu-zhong-de-ni-xu-dui-lcof/solution/bao-li-jie原创 2020-08-11 23:31:13 · 215 阅读 · 0 评论 -
leetcode 剑指 Offer 39. 数组中出现次数超过一半的数字
剑指 Offer 39. 数组中出现次数超过一半的数字数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]输出: 2限制:1 <= 数组长度 <= 50000看到一个网友说的非常好:摩尔投票法:核心就是对拼消耗。玩一个诸侯争霸的游戏,假设你方人口超过总人口一半以上,并且能保证每个人口出去干仗都能一对一同归于尽。最后还有人活下来的国家就是原创 2020-08-11 21:31:54 · 138 阅读 · 0 评论 -
leetcode 剑指 Offer 38. 字符串的排列
剑指 Offer 38. 字符串的排列输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。示例:输入:s = “abc”输出:[“abc”,“acb”,“bac”,“bca”,“cab”,“cba”]限制:1 <= s 的长度 <= 8开始使用回溯,但是如果不适用集合就会超时class Solution: def permutation(self, s: str) -> List[str]:原创 2020-08-11 21:03:34 · 132 阅读 · 0 评论 -
leetcode 剑指 Offer 36. 二叉搜索树与双向链表
剑指 Offer 36. 二叉搜索树与双向链表输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。为了让您更好地理解问题,以下面的二叉搜索树为例:我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环链表,第一个节点的前驱是最后一个节点,最后一个节点的后继是第一个节点。下图展示了上面的二叉搜索树转化成的链表。“head” 表示指向链表中有最小元素的节点。 特别地,我们希望可以就地完成转换操原创 2020-08-11 18:30:00 · 204 阅读 · 0 评论 -
leetcode 剑指 Offer 33. 二叉搜索树的后序遍历序列
剑指 Offer 33. 二叉搜索树的后序遍历序列输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。参考以下这颗二叉搜索树: 5 / \ 2 6 / \ 1 3示例 1:输入: [1,6,3,2,5]输出: false示例 2:输入: [1,3,2,6,5]输出: true我开始也是用的递归,因为列表的最后一个值就是根节点的值,我们可以通过比较,将左原创 2020-08-11 17:09:54 · 136 阅读 · 0 评论 -
leetcode 剑指 Offer 32 - III. 从上到下打印二叉树 III
剑指 Offer 32 - III. 从上到下打印二叉树 III请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [20,9], [15,7]]在之前的层序遍历的时候,每次我们都是先加入的左节点原创 2020-08-11 11:25:16 · 108 阅读 · 0 评论 -
leetcode 剑指 Offer 31. 栈的压入、弹出序列
剑指 Offer 31. 栈的压入、弹出序列输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。示例 1:输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1]输出:true解释:我们可以按以下顺序执行:push(1), pu原创 2020-08-11 10:45:02 · 206 阅读 · 0 评论 -
leetcode 剑指 Offer 30. 包含min函数的栈
剑指 Offer 30. 包含min函数的栈定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度]都是 O(1)。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);minStack.min(); --> 返回 -3.minStack.pop();minStack.top(原创 2020-08-11 09:54:18 · 190 阅读 · 0 评论 -
leetcode 剑指 Offer 50. 第一个只出现一次的字符
剑指 Offer 50. 第一个只出现一次的字符在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。示例:s = “abaccdeff”返回 “b”s = “”返回 " "限制:0 <= s 的长度 <= 50000每次判断字符,如果字符不在字典,就加入字典,键值为索引号,否则把键值赋值为正无穷。第二步就是对键值进行排序,取序号最小且不等于正无穷得进行输出。class Solution: def firstUniqChar(原创 2020-08-11 00:06:19 · 109 阅读 · 0 评论 -
leetcode 剑指 Offer 48. 最长不含重复字符的子字符串
剑指 Offer 48. 最长不含重复字符的子字符串请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子原创 2020-08-10 22:43:18 · 411 阅读 · 0 评论 -
leetcode 剑指 Offer 46. 把数字翻译成字符串
剑指 Offer 46. 把数字翻译成字符串给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。示例 1:输入: 12258输出: 5解释: 12258有5种不同的翻译,分别是"bccfi", “bwfi”, “bczi”, “mcfi"和"mzi”使用回溯算法,每次需要判断下当前字符串的合法性。长度为1的时候,什原创 2020-08-10 20:36:44 · 126 阅读 · 0 评论 -
leetcode 剑指 Offer 44. 数字序列中某一位的数字
剑指 Offer 44. 数字序列中某一位的数字数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从下标0开始计数)是5,第13位是1,第19位是4,等等。请写一个函数,求任意第n位对应的数字。示例 1:输入:n = 3输出:3示例 2:输入:n = 11输出:0限制:0 <= n < 2^31首先是确定数位,例如数位一在索引[0,9].数位二在索引[10,189],数位三在索引[190, 2889]确定数位之后就原创 2020-08-10 17:58:55 · 208 阅读 · 1 评论 -
leetcode 剑指 Offer 43. 1~n整数中1出现的次数
剑指 Offer 43. 1~n整数中1出现的次数输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数。例如,输入12,1~12这些整数中包含1 的数字有1、10、11和12,1一共出现了5次。示例 1:输入:n = 12输出:5示例 2:输入:n = 13输出:6限制:1 <= n < 2^31暴力操作不可取,直接超时class Solution: def countDigitOne(self, n: int) -> int:原创 2020-08-10 16:10:52 · 150 阅读 · 0 评论 -
leetcode 剑指 Offer 60. n个骰子的点数
剑指 Offer 60. n个骰子的点数把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。你需要用一个浮点数数组返回答案,其中第 i 个元素代表这 n 个骰子所能掷出的点数集合中第 i 小的那个的概率。示例 1:输入: 1输出: [0.16667,0.16667,0.16667,0.16667,0.16667,0.16667]示例 2:输入: 2输出: [0.02778,0.05556,0.08333,0.11111,0.13889,0.16667原创 2020-08-10 13:53:12 · 222 阅读 · 0 评论 -
leetcode 696. 计数二进制子串
696. 计数二进制子串给定一个字符串 s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。重复出现的子串要计算它们出现的次数。示例 1 :输入: “00110011”输出: 6解释: 有6个子串具有相同数量的连续1和0:“0011”,“01”,“1100”,“10”,“0011” 和 “01”。请注意,一些重复出现的子串要计算它们出现的次数。另外,“00110011”不是有效的子串,因为所有的0(和1)没有组合在一起。示例 2 :原创 2020-08-10 10:01:44 · 215 阅读 · 0 评论 -
leetcode 5485. 找出最长的超赞子字符串
5485. 找出最长的超赞子字符串给你一个字符串 s 。请返回 s 中最长的 超赞子字符串 的长度。「超赞子字符串」需满足满足下述两个条件:该字符串是 s 的一个非空子字符串进行任意次数的字符交换重新排序后,该字符串可以变成一个回文字符串示例 1:输入:s = “3242415”输出:5解释:“24241” 是最长的超赞子字符串,交换其中的字符后,可以得到回文 “24142”示例 2:输入:s = “12345678”输出:1示例 3:输入:s = “213123”输出:6解释原创 2020-08-09 20:51:42 · 421 阅读 · 0 评论 -
leetcode 5471. 和为目标值的最大数目不重叠非空子数组数目
5471. 和为目标值的最大数目不重叠非空子数组数目给你一个数组 nums 和一个整数 target 。请你返回 非空不重叠 子数组的最大数目,且每个子数组中数字和都为 target 。示例 1:输入:nums = [1,1,1,1,1], target = 2输出:2解释:总共有 2 个不重叠子数组(加粗数字表示) [1,1,1,1,1] ,它们的和为目标值 2 。示例 2:输入:nums = [-1,3,5,1,4,2,-9], target = 6输出:2解释:总共有 3 个子数组原创 2020-08-09 18:05:06 · 204 阅读 · 0 评论 -
leetcode 5486. 切棍子的最小成本
5486. 切棍子的最小成本有一根长度为 n 个单位的木棍,棍上从 0 到 n 标记了若干位置。例如,长度为 6 的棍子可以标记如下:给你一个整数数组 cuts ,其中 cuts[i] 表示你需要将棍子切开的位置。你可以按顺序完成切割,也可以根据需要更改切割的顺序。每次切割的成本都是当前要切割的棍子的长度,切棍子的总成本是历次切割成本的总和。对棍子进行切割将会把一根木棍分成两根较小的木棍(这两根木棍的长度和就是切割前木棍的长度)。请参阅第一个示例以获得更直观的解释。返回切棍子的 最小总成本 。原创 2020-08-09 17:31:23 · 818 阅读 · 0 评论 -
leetcode 5483. 整理字符串
5483. 整理字符串给你一个由大小写英文字母组成的字符串 s 。一个整理好的字符串中,两个相邻字符 s[i] 和 s[i + 1] 不会同时满足下述条件:0 <= i <= s.length - 2s[i] 是小写字符,但 s[i + 1] 是相同的大写字符;反之亦然 。请你将字符串整理好,每次你都可以从字符串中选出满足上述条件的 两个相邻 字符并删除,直到字符串整理好为止。请返回整理好的 字符串 。题目保证在给出的约束条件下,测试样例对应的答案是唯一的。注意:空字符串也属于整理原创 2020-08-09 13:25:44 · 284 阅读 · 0 评论 -
leetcode 5484. 找出第 N 个二进制字符串中的第 K 位
5484. 找出第 N 个二进制字符串中的第 K 位给你两个正整数 n 和 k,二进制字符串 Sn 的形成规则如下:S1 = “0”当 i > 1 时,Si = Si-1 + “1” + reverse(invert(Si-1))其中 + 表示串联操作,reverse(x) 返回反转 x 后得到的字符串,而 invert(x) 则会翻转 x 中的每一位(0 变为 1,而 1 变为 0)例如,符合上述描述的序列的前 4 个字符串依次是:S1 = “0”S2 = “011”S3 = “0原创 2020-08-09 13:18:02 · 286 阅读 · 0 评论 -
leetcode 5469. K 次操作转变字符串
5469. K 次操作转变字符串给你两个字符串 s 和 t ,你的目标是在 k 次操作以内把字符串 s 转变成 t 。在第 i 次操作时(1 <= i <= k),你可以选择进行如下操作:选择字符串 s 中满足 1 <= j <= s.length 且之前未被选过的任意下标 j (下标从 1 开始),并将此位置的字符切换 i 次。不进行任何操作。切换 1 次字符的意思是用字母表中该字母的下一个字母替换它(字母表环状接起来,所以 ‘z’ 切换后会变成 ‘a’)。请记住任意一原创 2020-08-09 10:24:13 · 746 阅读 · 0 评论 -
leetcode 5468. 第 k 个缺失的正整数
5468. 第 k 个缺失的正整数给你一个 严格升序排列 的正整数数组 arr 和一个整数 k 。请你找到这个数组里第 k 个缺失的正整数。示例 1:输入:arr = [2,3,4,7,11], k = 5输出:9解释:缺失的正整数包括 [1,5,6,8,9,10,12,13,…] 。第 5 个缺失的正整数为 9 。示例 2:输入:arr = [1,2,3,4], k = 2输出:6解释:缺失的正整数包括 [5,6,7,…] 。第 2 个缺失的正整数为 6 。提示:1 <= a原创 2020-08-09 10:10:34 · 289 阅读 · 0 评论 -
leetcode 剑指 Offer 27. 二叉树的镜像
剑指 Offer 27. 二叉树的镜像请完成一个函数,输入一个二叉树,该函数输出它的镜像。例如输入: 4 / \ 2 7 / \ / \1 3 6 9镜像输出: 4 / \ 7 2 / \ / \9 6 3 1示例 1:输入:root = [4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]限制:0 <= 节点个数 <= 1000使用DFS左右节点都存在,原创 2020-08-08 20:00:03 · 152 阅读 · 0 评论 -
leetcode 剑指 Offer 26. 树的子结构
剑指 Offer 26. 树的子结构输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。例如:给定的树 A: 3 / \ 4 5 / \ 1 2给定的树 B: 4 / 1返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。示例 1:输入:A = [1,2,3], B = [3,1]输出:false示例 2:输入:A = [3,4原创 2020-08-08 19:08:58 · 119 阅读 · 0 评论