【亡羊补牢】挑战数据结构与算法
文章平均质量分 59
经过面试,发现数据结构与算法这块确实不太扎实,想着初中那会班主任提到的一个成语:亡羊补牢,在这个专栏,我会坚持写作,一方面自己查漏补缺,另一方面教会大家。
一百个Chocolate
一个小帅哥和某厂前端搬砖。
频道内容: 前端技术,编程,我的思考。
用心去做自己热爱的事情️
座右铭: 学如逆水行舟,不进则退。
展开
-
【亡羊补牢】挑战数据结构与算法 第81期 LeetCode 763. 划分字母区间(双指针)
仰望星空的人,不应该被嘲笑题目描述字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段。返回一个表示每个字符串片段的长度的列表。示例 1:输入:S = "ababcbacadefegdehijhklij"输出:[9,7,8]解释:划分结果为 "ababcbaca", "defegde", "hijhklij"。每个字母最多出现在一个片段中。像 "ababcbacadefegde", "hijhklij" 的划分是错误的,因为划分的片段..原创 2020-10-22 10:49:59 · 517 阅读 · 1 评论 -
【亡羊补牢】挑战数据结构与算法 第80期 LeetCode 925. 长按键入(双指针)
仰望星空的人,不应该被嘲笑题目描述你的朋友正在使用键盘输入他的名字 name。偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次。你将会检查键盘输入的字符 typed。如果它对应的可能是你的朋友的名字(其中一些字符可能被长按),那么就返回 True。示例 1:输入:name = "alex", typed = "aaleex"输出:true解释:'alex' 中的 'a' 和 'e' 被长按。示例 2:输入:name = "saeed", typed = "..原创 2020-10-21 16:08:35 · 399 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第79期 LeetCode 142. 环形链表 II(链表)
仰望星空的人,不应该被嘲笑题目描述给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。说明:不允许修改给定的链表。进阶:你是否可以不用额外空间解决此题?示例 1:输入:head = [3,2,0,-4], pos = 1输出:返回索引为 1 的链表节..原创 2020-10-10 20:23:41 · 440 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第78期 LeetCode 209. 长度最小的子数组(双指针)
仰望星空的人,不应该被嘲笑题目描述给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。示例:输入:s = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。进阶:如果你已经完成了 O(n) 时间复杂度的解法, 请尝试 O(n log n) 时间复杂度的解法。来源:力扣(LeetCode)链接:https://..原创 2020-10-08 10:52:29 · 321 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第77期 LeetCode 42. 接雨水(双指针)
仰望星空的人,不应该被嘲笑题目描述给定 n 个非负整数表示每个宽度为 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来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/trap..原创 2020-10-08 10:41:50 · 323 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第76期 LeetCode 11. 盛最多水的容器(双指针)
仰望星空的人,不应该被嘲笑题目描述给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。示例:输入:[1,8,6,2,5,4,8..原创 2020-10-08 10:30:41 · 311 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第75期 LeetCode 344. 反转字符串(双指针)
仰望星空的人,不应该被嘲笑题目描述编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]示例 2:输入:["H","a","n","n","a","h"]输出:["h","a",..原创 2020-10-08 10:08:53 · 293 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第74期 LeetCode 75. 颜色分类(双指针)
仰望星空的人,不应该被嘲笑题目描述给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]进阶:一个直观的解决方案是使用计数排序的两趟扫描算法。首先,迭代计算出0、1 和 2 元素的个数,然后按照0、1、2的排序,重写当前..原创 2020-10-07 20:43:55 · 312 阅读 · 1 评论 -
【亡羊补牢】挑战数据结构与算法 第73期 LeetCode 16. 最接近的三数之和(双指针)
仰望星空的人,不应该被嘲笑题目描述给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。示例:输入:nums = [-1,2,1,-4], target = 1输出:2解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。提示:3 <= nums.length <= 10^3-10^3 <= nums[i] ..原创 2020-10-07 20:19:41 · 364 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第72期 LeetCode 15. 三数之和(双指针)
仰望星空的人,不应该被嘲笑题目描述给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/pr..原创 2020-10-07 12:01:15 · 374 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第71期 LeetCode 122. 买卖股票的最佳时机 II(DP&贪心)
仰望星空的人,不应该被嘲笑题目描述给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 随后,在第 4 天(股票价..原创 2020-10-06 21:21:31 · 376 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第70期 LeetCode 121. 买卖股票的最佳时机(DP)
仰望星空的人,不应该被嘲笑题目描述给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同..原创 2020-10-06 21:07:07 · 385 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第69期 LeetCode 63. 不同路径 II(DP)
仰望星空的人,不应该被嘲笑题目描述一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。说明:m 和 n 的值均不超过 100。示例 1:输入:[ [0,0,0], [0,1,0], [0,0,0]]输出: 2解释:..原创 2020-10-06 16:58:27 · 340 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第68期 LeetCode 62. 不同路径(DP)
仰望星空的人,不应该被嘲笑题目描述一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?示例 1:输入: m = 3, n = 2输出: 3解释:从左上角开始,总共有 3 条路径可以到达右下角。1. 向右 -> 向右 -> 向下2. 向右 -> 向下..原创 2020-10-06 16:32:45 · 298 阅读 · 2 评论 -
【亡羊补牢】挑战数据结构与算法 第67期 LeetCode 322. 零钱兑换(DP)
仰望星空的人,不应该被嘲笑题目描述给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。你可以认为每种硬币的数量是无限的。示例 1:输入:coins = [1, 2, 5], amount = 11输出:3 解释:11 = 5 + 5 + 1示例 2:输入:coins = [2], amount = 3输出:-1示例 3:输入:coins = [1], amount..原创 2020-10-06 16:12:14 · 329 阅读 · 2 评论 -
【亡羊补牢】挑战数据结构与算法 第66期 LeetCode 221. 最大正方形(DP)
仰望星空的人,不应该被嘲笑题目描述在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。示例:输入: 1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0输出: 4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximal-square著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解题思路要想求得最大正方形,通过找规律,我们不难发现,对于(..原创 2020-10-06 15:55:29 · 362 阅读 · 2 评论 -
【亡羊补牢】挑战数据结构与算法 第65期 LeetCode 213. 打家劫舍 II(DP)
仰望星空的人,不应该被嘲笑题目描述你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [2,3,2]输出: 3解释: 你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 号房屋(金额 = ..原创 2020-10-06 15:34:17 · 317 阅读 · 2 评论 -
【亡羊补牢】挑战数据结构与算法 第64期 LeetCode 198. 打家劫舍(DP)
仰望星空的人,不应该被嘲笑题目描述你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 +..原创 2020-10-06 15:13:27 · 312 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第63期 LeetCode 70. 爬楼梯(DP)
仰望星空的人,不应该被嘲笑题目描述假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶来源:力扣(LeetCode)..原创 2020-10-06 14:57:37 · 287 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第62期 LeetCode 92. 反转链表 II(链表)
仰望星空的人,不应该被嘲笑题目描述反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。说明:1 ≤ m ≤ n ≤ 链表长度。示例:输入: 1->2->3->4->5->NULL, m = 2, n = 4输出: 1->4->3->2->5->NULL来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-linked-list-ii著作权归领扣网络所有。..原创 2020-10-04 17:16:37 · 266 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第61期 LeetCode 206. 反转链表(链表)
仰望星空的人,不应该被嘲笑题目描述反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-linked-list著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解题..原创 2020-10-04 16:58:15 · 288 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第60期 LeetCode 剑指 Offer 18. 删除链表的节点(链表)
仰望星空的人,不应该被嘲笑题目描述给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。注意:此题对比原题有改动示例 1:输入: head = [4,5,1,9], val = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:输入: head = [4,5,1,9], val = 1输出: [4,5,9]解释: 给定你链表中值为 1..原创 2020-10-04 16:37:48 · 265 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第59期 LeetCode 19. 删除链表的倒数第N个节点(链表)
仰望星空的人,不应该被嘲笑题目描述给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-nth-node-from-e..原创 2020-10-04 16:14:00 · 326 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第58期 LeetCode 24. 两两交换链表中的节点(链表)
仰望星空的人,不应该被嘲笑题目描述给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/swap-nodes-in-pairs著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解题思路非递归解..原创 2020-10-04 15:13:52 · 315 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第57期 LeetCode 203. 移除链表元素(链表)
仰望星空的人,不应该被嘲笑题目描述删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5解题思路创建一个新链表,遇到相同值的情况,将当前节点的next指向下一个节点的next,否则继续遍历。var removeElements = function(head, val) { let dummyHead = new ListNo..原创 2020-10-04 14:54:08 · 279 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第56期 LeetCode 2. 两数相加(链表)
仰望星空的人,不应该被嘲笑题目描述给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807来源:力扣(LeetCo..原创 2020-10-04 14:44:20 · 324 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第55期 LeetCode 124. 二叉树中的最大路径和(二叉树)
仰望星空的人,不应该被嘲笑题目描述给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。示例 1:输入:[1,2,3] 1 / \ 2 3输出:6示例 2:输入:[-10,9,20,null,null,15,7] -10 / \ 9 20 / \ 15 7输出:42来源:力扣(Le..原创 2020-09-28 20:22:56 · 387 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第54期 LeetCode 543. 二叉树的直径(二叉树)
仰望星空的人,不应该被嘲笑题目描述给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。示例 :给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。注意:两结点之间的路径长度是以它们之间边的数目表示。来源:力扣(LeetCode)链接:..原创 2020-09-28 14:58:16 · 304 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第53期 LeetCode 100. 相同的树(二叉树)
仰望星空的人,不应该被嘲笑题目描述给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true示例 2:输入: 1 1 / \ ..原创 2020-09-26 16:29:53 · 312 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第52期 LeetCode 113. 路径总和 II(二叉树)
仰望星空的人,不应该被嘲笑题目描述给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1返回:[ ..原创 2020-09-26 16:03:52 · 276 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第51期 LeetCode 102. 二叉树的层序遍历(二叉树)
仰望星空的人,不应该被嘲笑题目描述给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-level-..原创 2020-09-25 18:22:41 · 347 阅读 · 1 评论 -
【亡羊补牢】挑战数据结构与算法 第50期 LeetCode 144. 二叉树的前序遍历(二叉树)
仰望星空的人,不应该被嘲笑题目描述给定一个二叉树,返回它的 前序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3]进阶: 递归算法很简单,你可以通过迭代算法完成吗?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-preorder-traversal著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解题思..原创 2020-09-25 18:00:33 · 249 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第49期 LeetCode 199. 二叉树的右视图(二叉树)
仰望星空的人,不应该被嘲笑题目描述给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。示例:输入: [1,2,3,null,5,null,4]输出: [1, 3, 4]解释: 1 <--- / \2 3 <--- \ \ 5 4 <---来源:力扣(LeetCode)链接:https://leetcode-cn.com/problem..原创 2020-09-25 17:46:55 · 301 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第48期 LeetCode 104. 二叉树的最大深度(二叉树)
仰望星空的人,不应该被嘲笑题目描述给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-depth-of-binary-tr..原创 2020-09-25 14:46:22 · 258 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第47期 LeetCode 111. 二叉树的最小深度(二叉树)
仰望星空的人,不应该被嘲笑题目描述给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最小深度 2.来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/minimum-depth-of-binary-t..原创 2020-09-25 14:33:40 · 295 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第46期 LeetCode 101. 对称二叉树(二叉树)
仰望星空的人,不应该被嘲笑题目描述给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3 进阶:你可以运用递归和迭代两种方法解决这个问题吗?来源:力扣(LeetCode)链接:https://leetcod..原创 2020-09-25 14:16:45 · 267 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第45期 LeetCode 110. 平衡二叉树(二叉树)
仰望星空的人,不应该被嘲笑题目描述给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4] 1 / \ 2 2 ..原创 2020-09-25 11:27:04 · 261 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第44期 LeetCode 112. 路径总和(二叉树)
仰望星空的人,不应该被嘲笑题目描述给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ \ 7 2 ..原创 2020-09-25 11:04:45 · 237 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第43期 LeetCode 404. 左叶子之和(二叉树)
仰望星空的人,不应该被嘲笑题目描述计算给定二叉树的所有左叶子之和。示例: 3 / \ 9 20 / \ 15 7在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/sum-of-left-leaves著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解题思路dfs,求左叶子之和,叶子结点我们比较好判断,而对于..原创 2020-09-25 10:56:12 · 339 阅读 · 0 评论 -
【亡羊补牢】挑战数据结构与算法 第42期 LeetCode 257. 二叉树的所有路径(二叉树)
仰望星空的人,不应该被嘲笑题目描述给定一个二叉树,返回所有从根节点到叶子节点的路径。说明: 叶子节点是指没有子节点的节点。示例:输入: 1 / \2 3 \ 5输出: ["1->2->5", "1->3"]解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-paths著作权..原创 2020-09-25 10:25:29 · 256 阅读 · 0 评论