LeetCode 题解系列(1038):从二叉搜索树到更大和树 题目描述:给出二叉 搜索 树的根节点,该二叉树的节点值各不相同,修改二叉树,使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。 提醒一下,二叉搜索树满足下列约束条件: 节点的左子树仅包含键 小于 节点键的节点。节点的右子树仅包含键 大于 节点键的节点。左右子树也必须是二叉搜索树。 解法一: 中序遍历因为搜索二叉树的性质,所以可以使用先右、后中、再左的方式中序遍历二叉树, 2020-07-08 LeetCode题解系列 #数据结构 #算法
LeetCode 题解系列(1012):至少有 1 位重复的数字 题目描述:给定正整数 N,返回小于等于 N 且具有至少 1 位重复数字的正整数的个数。示例 1: 输入:20输出:1解释:具有至少 1 位重复数字的正数(<= 20)只有 11 。示例 2: 输入:100输出:10解释:具有至少 1 位重复数字的正数(<= 100)有 11,22,33,44,55,66,77,88,99 和 100 。示例 3: 输入:1000输出 2020-07-06 LeetCode题解系列 #数据结构 #算法
LeetCode 题解系列(1013):将数组分成和相等的三个部分 题目描述:给你一个整数数组 A,只有可以将其划分为三个和相等的非空部分时才返回 true,否则返回 false。 形式上,如果可以找出索引 i+1 < j 且满足 A[0] + A[1] + … + A[i] == A[i+1] + A[i+2] + … + A[j-1] == A[j] + A[j-1] + … + A[A.length - 1] 就 2020-07-06 LeetCode题解系列 #数据结构 #算法
LeetCode 题解系列(994):腐烂的橘子 题目描述:在给定的网格中,每个单元格可以有以下三个值之一: 值 0 代表空单元格;值 1 代表新鲜橘子;值 2 代表腐烂的橘子。每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。 返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1。 解法一: BFS 建立一个队列,并遍历数组,将腐烂的句子加入到队列中,代表第 0 分钟就全部腐烂了,并统计新鲜橘子的个 2020-07-05 LeetCode题解系列 #数据结构 #算法
LeetCode 题解系列(974):和可以被 K 整除的子数组 题目描述:给定一个整数数组 A,返回其中元素之和可被 K 整除的(连续、非空)子数组的数目。 示例: 输入:A = [4,5,0,-2,-3,1], K = 5输出:7解释:有 7 个子数组满足其元素之和可被 K = 5 整除:[4, 5, 0, -2, -3, 1], [5], [5, 0], [5, 0, -2, -3], [0], [0, -2, -3], 2020-07-04 代码面试指南系列 #数据结构 #算法
LeetCode 题解系列(983):最低票价 题目描述:在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行。在接下来的一年里,你要旅行的日子将以一个名为 days 的数组给出。每一项是一个从 1 到 365 的整数。 火车票有三种不同的销售方式: 一张为期一天的通行证售价为 costs[0] 美元;一张为期七天的通行证售价为 costs[1] 美元;一张为期三十天的通行证售价为 costs[2] 美元。通行证允许数天无限制的旅行。 例 2020-07-04 LeetCode题解系列 #数据结构 #算法
LeetCode 题解系列(912):排序数组 题目描述:给你一个整数数组 nums,请你将该数组升序排列。 示例 1: 输入:nums = [5,2,3,1]输出:[1,2,3,5]示例 2: 输入:nums = [5,1,1,2,0,0]输出:[0,0,1,1,2,5] 解法一: 快速排序时间复杂度: O(NlogN); 辅助空间复杂度: O(N) 1234567891011121314151617181920212 2020-06-29 LeetCode题解系列 #数据结构 #算法
LeetCode 题解系列(887):鸡蛋掉落 题目描述:你将获得 K 个鸡蛋,并可以使用一栋从 1 到 N 共有 N 层楼的建筑。 每个蛋的功能都是一样的,如果一个蛋碎了,你就不能再把它掉下去。 你知道存在楼层 F ,满足 0 <= F <= N 任何从高于 F 的楼层落下的鸡蛋都会碎,从 F 楼层或比它低的楼层落下的鸡蛋都不会破。 每次移动,你可以取一个鸡蛋(如果你有完整的鸡蛋)并把它从任一楼层 X 扔下( 2020-06-27 LeetCode题解系列 #数据结构 #算法
LeetCode 题解系列(820):单词的压缩编码 题目描述:给定一个单词列表,我们将这个列表编码成一个索引字符串 S 与一个索引列表 A。 例如,如果这个列表是 [“time”, “me”, “bell”],我们就可以将其表示为 S = “time#bell#” 和 indexes = [0, 2, 5]。 对于每一个索引,我们可以通过从字符串 S 中索引的位置开始读取字符串,直到 “#” 结束,来恢复我们之前的单词列表。 那 2020-06-22 LeetCode题解系列 #数据结构 #算法
LeetCode 题解系列(739): 每日温度 题目描述:根据每日 气温 列表,请重新生成一个列表,对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。 例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。 提示:气温 列表长度的范围是 [1, 30000 2020-06-15 代码面试指南系列 #数据结构 #算法