自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

原创 代码随想录总结篇章

历时两个月60天的代码随想录结束了,本次一刷leetcode收获很多,将经典题目都刷了一遍,感觉到自己的代码能力有显著提升,感谢老师们每天的提醒,原来想着两个月坚持下来是件难事,但坚持下来后发现也没有那么难,日积月累收获良多,下面是各题型总结:来源于同期录友:代码随想录算法训练营总结-CSDN博客 来源于同期录友:代码随想录算法训练营总结-CSDN博客

2024-05-22 21:29:36 567

原创 代码随想录Day 52 Last Day|Leetcode|Python|84. 柱状图中最大的矩形

个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1。求在该柱状图中,能够勾勒出来的矩形的最大面积。最大的矩形为图中红色区域,面积为 10。

2024-05-20 13:17:38 158

原创 代码随想录Day 51|leetcode|Python|503. 下一个更大元素 II,42. 接雨水

给定一个循环数组nums的下一个元素是nums[0]),返回 nums中每个元素的。数字x的是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出-1。解题思路:对于循环数组,可以将遍历数组延长一倍,然后使用mod保证遍历数都在nums中,设置一个result长度为nums,设置stack存储数字,遍历每个数时遍历后面的数,分情况讨论,如果小于等于当前数,存入stack,大于的话更新result。

2024-05-18 14:50:22 338

原创 代码随想录Day 50|Leetcode|Python|739. 每日温度,496. 下一个更大元素 I

给定一个整数数组,表示每天的温度,返回一个数组answer,其中answer[i]是指对于第i天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用0来代替。

2024-05-17 22:03:09 336

原创 代码随想录Day 49|Leetcode|Python|● 647. 回文子串 ● 516.最长回文子序列● 动态规划总结篇

647. 回文子串647. 回文子串给你一个字符串s,请你统计并返回这个字符串中的数目。是正着读和倒过来读一样的字符串。是字符串中的由连续字符组成的一个序列。解题思路:确认dp含义:dp[i][j] s[i:j]是否为回文串,是的话等于True,不是的话False递推公式:如果s[i] == s[j],三种情况:i == j,i-j=1, dp[i][j] = True, 如果i-j>1: dp[i][j] = dp[i-1][j-1]初始化:dp[i][j] = False。

2024-05-17 13:40:27 642

原创 代码随想录Day 48|Leetcode|Python|583. 两个字符串的删除操作 ● 72. 编辑距离 ● 编辑距离总结篇

dp公式:word1[i-1] == word2[j-1]时dp[i][j] = dp[i-1][j-1], else: dp[i][j] = min(dp[i-1][j]+1, dp[i][j-1]+1, dp[i-1][j-1]+2)dp公式:word1[i-1] == word2[j-1]: dp[i][j] = dp[i-1][j-1], else: 删除word1不相同的i-1元素,在word2添加元素,替换word1或word2元素。583. 两个字符串的删除操作。遍历顺序:从上到下从左到右。

2024-05-16 18:54:23 221

原创 代码随想录Day 47|Leetcode|Python|392.判断子序列 ● 115.不同的子序列

t[j-1], dp[i][j] = dp[i-1][j]递推公式:当s[i-1] == t[j-1],dp[i][j] = dp[i-1][j-1]+1,else 将t倒退前一位得到dp[i][j-1],这里因为t比s大,在t中判断是否有s,因此s不用倒退一个。初始化:dp[0][j]:空字符串“”中包含了多少个以j-1结尾的t子字符串,0个,dp[i][0],s[i-1]中包含了1个空字符串,dp[0][0] = 1。初始化:dp[i][0] = 0, dp[0][j] = 0。

2024-05-15 15:12:13 335 2

原创 代码随想录Day 46|Leetcode|Python|1143.最长公共子序列 ● 1035.不相交的线 ● 53. 最大子序和 动态规划

递推公式:如果当前遍历的字符相等,index共同倒退一步,当前状态dp[i][j]来源于dp[i-1][j-1],如果不相等,当前状态dp[i][j]来源于各后退一个的index最大值max(dp[i-1][j], dp[i][j-1])递推公式:dp[i] = max(dp[i-1]+nums[i], nums[i])当前面的数加起来小于nums[i],直接从nums[i]计算。是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。

2024-05-14 15:46:04 412 1

原创 代码随想录Day 45|Leetcode|Python|● 300.最长递增子序列 ● 674. 最长连续递增序列 ● 718. 最长重复子数组

确认dp数组含义:dp[i][j]nums1尾部为i-1indexnums2尾部为j-1index的数组中,最大重复子数组长度。确认递推公式:如果前面的数比当前数小,dp[i] = max(dp[i], dp[j]+1)递推公式:当i-1,j-1对应数字相等时dp[i][j] = dp[i-1][j-1]+1。确认递推公式:如果前面的数比当前数小,dp[i] = dp[i-1]+1。初始化:dp[i][0] = 0, dp[0][j] = 0。初始化:dp[0] = 1, dp[i] = 1。

2024-05-13 16:05:03 145

原创 代码随想录Day 44|Leetcode|Python|● 309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费 ●总结

dp[i[0] = max(dp[i-1][0], dp[i-1][1]-prices[i], dp[i-1][3]-prices[i])分为三种可能,前一天同样持有股票,前一天一直保持售出状态,前一天是dp[i][3]冷冻期状态下金额。dp[i][0] = max(dp[i-1][0], dp[i1][1]-prices[i]-fee](卖出后减fee也可以)打印dp数组:[[-3, 0], [-3, 0], [-3, 0], [-3, 5], [-1, 5], [-1, 8]]遍历顺序:从前向后遍历。

2024-05-11 16:31:47 377 1

原创 代码随想录Day 43|Leetcode|Python|123. 买卖股票的最佳时机III,188.买卖股票的最佳时机IV

dp[i][1], dp[i][2], dp[i][3], dp[i][4] 表示。初始化:dp[0][j] = 0, dp[0][j+1] = -prices[0], dp[0][j+2] = 0在第一天买入又买出。初始化:dp[0][0] = 0, dp[0][1] = -prices[0], dp[0][2] = 0在第一天买入又买出,dp公式:dp[i][1] = max(dp[i-1][1], dp[i-1][0]-prices[i])dp[i][j+2]第i天第一次不持有股票时的金额数。

2024-05-10 15:41:26 400 2

原创 代码随想录Day 42|Leetcode|Python|121. 买卖股票的最佳时机 ● 122.买卖股票的最佳时机II

确认递推公式:dp[i][0] = max(dp[i-1][0], dp[i-1][1]-prices[i]), dp[i-1][1]-prices[i]指第i-1天没有股票,但是第i天买入股票后所持有现金。dp[i][1] = max(dp[i-1][1], dp[i-1][0]+prices[i]), dp[i-1][0]+prices[i]指今天卖掉股票。确认递推公式:dp[i][0] = max(dp[i-1][0], -prices[i]), -prices[i]指第i天买入股票后所持有现金。

2024-05-09 14:52:24 400 1

原创 代码随想录Day 41|Leetcode|Python|198.打家劫舍 ● 213.打家劫舍II ● 337.打家劫舍III

本体使用递归三部曲结合dp五步骤,设置dp[0],dp[1]表示打劫当前节点和不打劫当前节点的最大值,每个node有一组对应的dp[0], dp[1]。确认递推公式:dp[i]取决于前一个房屋和前两个房屋是否有被偷,如果前一个被偷,则不能偷第i个,如果第i-2个被偷,可选择是否偷第i个。dp[i] = max(dp[i-2]+nums[i], dp[i-1])确认递推公式:dp[i]取决于前一个房屋和前两个房屋是否有被偷,如果前一个被偷,则不能偷第i个,如果第i-2个被偷,可选择是否偷第i个。

2024-05-08 15:52:34 775

原创 代码随想录Day 40|Leetcode|Python|139.单词拆分 ● 关于多重背包,你该了解这些! ● 背包问题总结篇!

139.单词拆分139.单词拆分给你一个字符串s和一个字符串列表wordDict作为字典。如果可以利用字典中出现的一个或多个单词拼接出s则返回true。不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。解题思路:确定dp数组含义:dp[i]当字符串长度为i时,是否可以利用字典拼出当前子串s[:i],1的话可以。

2024-05-07 17:54:07 853

原创 代码训练营Day 39|Leetcode|Python|● 70. 爬楼梯 (进阶)● 322. 零钱兑换 ● 279.完全平方数

本体要注意难点在于两层for loop的起始和中止遍历位置,第一层遍历物品i时起始index为1因为已经初始化dp[0],终止index为int(sqrt(n))+1,说明最大可以将n方根填入候选。当 m = 2,n = 3 时,n = 3 这表示一共有三个台阶,m = 2 代表你每次可以爬一个台阶或者两个台阶。本体理解成容量为n的背包,使用物品(1, ..., m)填满有多少种方法?是一个整数,其值等于另一个整数的平方;输出描述:输出一个整数,表示爬到楼顶的方法数。你可以认为每种硬币的数量是无限的。

2024-05-06 17:51:25 416

原创 代码随想录Day 38|Leetcode|Python|● 完全背包● 518. 零钱兑换 II ● 377. 组合总和 Ⅳ

小明是一位科学家,他需要参加一场重要的国际科学大会,以展示自己的最新研究成果。这些研究材料包括实验设备、文献资料和实验样本等等,它们各自占据不同的重量,并且具有不同的价值。小明的行李箱所能承担的总重量为 N,问小明应该如何抉择,才能携带最大价值的研究材料,每种研究材料可以选择无数次,并且可以重复选择。接下来包含 N 行,每行两个整数 wi 和 vi,代表第 i 种研究材料的重量和价值。第一行包含两个整数,N,V,分别表示研究材料的种类和行李空间。表示不同面额的硬币,另给一个整数。518. 零钱兑换 II。

2024-05-05 17:33:27 608 2

原创 代码随想录Day 37|Leetcode|Python|● 1049. 最后一块石头的重量 II ● 494. 目标和 ● 474.一和零

本题思路和零一背包的一维问题相似,将stones尽量分成两个大小类似的list,然后相抵消,所以计算出stones之和再除以2,使用数组填充得到sum//2。现在问题变成:使用数组中的数字装满大小为add的背包,有多少种方法?本题进行零一背包问题转换,分为两个子集,加号子集,减号子集。,然后将它们一起粉碎。1049. 最后一块石头的重量 II。1049. 最后一块石头的重量 II。,然后串联起所有整数,可以构造一个。的最大子集的长度,该子集中。如果没有石头剩下,就返回。有一堆石头,用整数数组。

2024-05-04 17:00:29 401

原创 代码随想录Day 36|Python|Leetcode|01背包问题,你该了解这些! ● 01背包问题,你该了解这些! 滚动数组 ● 416. 分割等和子集

递归公式中可以看出dp[i][j]是靠dp[i-1][j]和dp[i - 1][j - weight[i]]推导出来的。状态转移方程 dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - weight[i]] + value[i]);dp[0][j],即:i为0,存放编号0的物品的时候,各个容量的背包所能存放的最大价值。

2024-04-30 19:36:25 310 4

原创 代码随想录Day 35|Leetcode|Python|343. 整数拆分 ● 96.不同的二叉搜索树

确定递推公式:dp[j] += dp[j-1]xdp[i-j],j指的是在i中的所有数字以j作为头节点组成的二叉树,j-1指比j小的左子树,i-j是比j大的右子树。确定遍历顺序:从小到大for i in range(1, n+1);for j in range(1, i+1)确定dp数组(dp table)以及下标的含义:dp[i]整数i能组成的不同二叉搜索树。返回满足题意的二叉搜索树的种数。dp数组如何初始化:dp[0] = 1。),并使这些整数的乘积最大化。个节点组成且节点值从。你可以获得的最大乘积。

2024-04-29 15:07:21 122

原创 代码随想录Day 34|Leetcode|Python|62.不同路径 ● 63. 不同路径 II

机器人试图达到网格的右下角(在下图中标记为 “Finish” )。dp数组如何初始化:dp[0][j] = 0, dp[i][0] = 0如果有障碍物,后面的值设置为0。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。确定dp数组(dp table)以及下标的含义:dp[i][j]到达位置i,j不同路径数量。确定递推公式:dp[i][j] = dp[i-1][j] + dp[i][j-1]举例推导dp数组:dp[4][4 = d[[3][4] + dp[4][3]问总共有多少条不同的路径?

2024-04-27 18:01:30 213 1

原创 代码随想录训练营Day 33|Python|Leetcode|● 理论基础 ● 509. 斐波那契数 ● 70. 爬楼梯 ● 746. 使用最小花费爬楼梯

理论基础理论基础。

2024-04-26 13:38:07 393 2

原创 代码随想录训练营Day 32|Python|Leetcode|● 738.单调递增的数字

对于所给数字进行str()并从后向前遍历。当前一个数大于后一个数说明不满足单调递增,将前一个数减一即缩小十倍,为了实现最大化,后面所有数字变成’9‘。当且仅当每个相邻位数上的数字。的最大数字,且数字呈。时,我们称这个整数是。

2024-04-25 19:35:48 179 2

原创 代码随想录训练营Day 31|Python|Leetcode|435. 无重叠区间 ● 763.划分字母区间 ● 56. 合并区间

先在result中添加进第一个区间,剩下逻辑与leetcode435类似,如果发现左区间小于上一个右区间,在result中更改最后一个的右区间;设置start,end记录每个字符片段的起始,并在第二次遍历的时候更新end,当i==end时说明遍历到了当前字符片段的终点,添加进result并更新start。从第二个区间开始与上一个区间进行比较,如果当前区间左边界小于上一区间右边界,说明区间重叠,并将两区间有边界定义为较小的有边界,用来和下一区间进行比较。需要移除区间的最小数量,使剩余区间互不重叠。

2024-04-24 16:21:59 271 1

原创 代码随想录训练营Day 30|Python|Leetcode|● 860.柠檬水找零 ● 406.根据身高重建队列 ● 452. 用最少数量的箭引爆气球

按照左边界进行排序,检查当前区间左边界是否大于上一个区间的右边界,如果大的话说明不能用一只箭射穿两个;如果当前区间左边界小上一个区间的右边界,说明可以一箭射穿,所以将当前右边界定义为二者最小右边界并进入下一层判断。分类讨论,如果收到的钱为5,10,20。收到5时不用找零,收到10时找5,收到20时可以先找一张10再找1张5或者找三张5,尽量用10因为5比较万能。使用身高从高到低进行排序,如果身高一样,按照从小到大k值进行排序。墙面上的气球记录在整数数组。处射出一支箭,若有一个气球的直径的开始和结束坐标为。

2024-04-23 20:12:51 363 1

原创 代码随想录训练营Day 29|Python|Leetcode|1005.K次取反后最大化的数组和 ● 134. 加油站● 135. 分发糖果

使用current_sum和total_sum分别记录当前gas容量,如果current_sum

2024-04-22 18:40:13 277

原创 代码随想录训练营Day 28|Python|Leetcode|122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II

给你一个整数数组prices,其中prices[i]表示某支股票第i天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候只能持有股票。你也可以先购买,然后在出售。返回你能获得的利润解题思路:贪心策略:对于每一天与前一天的价格求出价格差,如果差值为正说明盈利。加上所有盈利的金额可利益最大化。

2024-04-20 17:36:34 272 2

原创 代码随想录训练营Day 27|Python|Leetcode|● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和

455.分发饼干455.分发饼干假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子i,都有一个胃口值g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干j,都有一个尺寸s[j]。如果,我们可以将这个饼干j分配给孩子i,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。解题思路:贪心算法使得尽力达到局部最优解,再到全局最最优。用大饼干满足胃口大的孩子,以此类推。

2024-04-19 17:53:11 269

原创 代码随想录训练营Day 26|Python|Leetcode|● 332.重新安排行程 ● 51. N皇后 ● 37. 解数独

给你一份航线列表tickets,其中表示飞机出发和降落的机场地点。请你对该行程进行重新规划排序。所有这些机票都属于一个从JFK(肯尼迪国际机场)出发的先生,所以该行程必须从JFK开始。如果存在多种有效的行程,请你按字典排序返回最小的行程组合。假定所有机票至少存在一种合理的行程。且所有的机票 必须都用一次 且 只能用一次。解题思路:难点:来源。

2024-04-18 18:59:28 793

原创 代码随想录训练营Day 25|Python|Leetcode|491.递增子序列* 46.全排列* 47.全排列 II

当使用start_index时是为了让接下来可选择的数从当前数的下一个开始。停止条件:if len(path) == len(nums): append+return。停止条件:if len(path) == len(nums): result append。本题要注意除重,判断上一个数字是否使用过,没有使用过并且前后数字相同就进行树层除重。数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。,找出并返回所有该数组中不同的递增子序列,递增子序列中。给定一个不含重复数字的数组。

2024-04-17 17:12:58 548

原创 代码随想录训练营Day 24|Python|Leetcode|93.复原IP地址, 78.子集,90.子集II

正好由四个整数(每个整数位于0到255之间组成,且不能含有前导0),整数之间用'.'分隔。给定一个只包含数字的字符串s,用以表示一个 IP 地址,返回所有可能的,这些地址可以通过在s中插入'.'来形成。你重新排序或删除s中的任何数字。你可以按顺序返回答案。解题思路:继续使用回溯递归输入参数:def backtracking(s, start_index, path, result)停止条件:if start_index == len(s) and len(path) == 4。

2024-04-16 17:34:37 312

原创 代码随想录训练营Day 23|Python|Leetcode|39. 组合总和,40.组合总和II,131.分割回文串

本体要注意去重,在数层方面除去重复的数字,比如[1,1,2], 第一个数和第二个数是一样的,如果不排除第二个一样的数字会导致出现重复组合,并且遍历逻辑可得是在for loop进行到下一个数字的时候进行判断。递归逻辑:for i in range(start_index, len(candidates)): if targetsum == sum and i>start: continue。但是要明确的是进入下一层for循环时,可选的option是从自身开始,不是从第一个数开始否则会有重复,如下。

2024-04-15 18:58:58 278

原创 代码随想录训练营Day 22|Python|Leetcode|理论基础,77. 组合

回溯逻辑:for i in range(1, 10), sum += i, path.append(i), traversal(k, sum, targetsum, start, path, result), sum -= i, path.pop()输入参数:def traversal(s, result, digits, index) index记录正在遍历的数字。输入参数:def traversal(k, sum, targetsum, path, result)所有可能的有效组合的列表。

2024-04-13 18:43:10 329 1

原创 代码随想录训练营Day 21|Python|Leetcode|理论基础,77. 组合

输入参数:def backtracking(n, k, start_number, path, result), start_number记录每次递归的可选择起始点,path记录本次的存储,result总存储。如图所示,本体思路为在n个书中选一个,有n种可能,在剩下数中选一个,依次递归。回溯逻辑与递归三步骤类似。停止条件:当path已经包含k个数,加入result。每次选择一个数后,下一个数从后一个开始选。

2024-04-12 14:56:06 296

原创 代码随想录训练营Day 20|Python|Leetcode|669. 修剪二叉搜索树,108.将有序数组转换为二叉搜索树,538.把二叉搜索树转换为累加树

递归逻辑:使用root.left=trim(root.left, low, high)接住左边返回值,如果发现要删除的节点,会自动返回其left/right满足条件的值,root.right同理。递归逻辑:初设pre = 0,convertBST(cur.right),cur.val += pre, pre = cur.val,convertBST(cur.left)树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点。538.把二叉搜索树转换为累加树。

2024-04-11 21:59:55 254

原创 代码随想录训练营Day 19|Python|Leetcode|235. 二叉搜索树的最近公共祖先,701.二叉搜索树中的插入操作,450.删除二叉搜索树中的节点

递归逻辑:if cur.val>p and cur.val>q, left = dfs(cur.left), if left!递归逻辑:当value>cur.val, cur.right = insert(cur.right, value);中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]

2024-04-10 15:56:33 389 1

原创 代码随想录算法训练营Day 18|Python|530.二叉搜索树的最小绝对差,501.二叉搜索树中的众数,236. 二叉树的最近公共祖先

本题依然使用中序遍历,设定初始count=0,max_count = 0, result = [], pre = None,遍历到中间节点时,检查是否在叶子节点,直接count=1,如果pre=cur,说明有重复节点,count += 1,否则就是新的节点但是不重复,count = 1。递归逻辑:left,right分别递归,便利中间节点时如果左右都有,返回root,只有左边有,返回左边,只有右边有,返回右边。利用pre,cur进行对比,进行中序遍历,形成的遍历数组是递增关系,进行前后对比即可。

2024-04-09 17:55:24 330

原创 代码随想录算法训练营Day 17|Python|654.最大二叉树,617.合并二叉树,700.二叉搜索树中的搜索,98.验证二叉搜索树

合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;递归逻辑:find max_value=float('-inf'), if max_value < root.val, max_value = root.val, else: return。递归逻辑:找出最大值,找到最大index,分左右区间nums,进入递归循环,node.left, node.right赋值。停止条件:递归过程中不断分割左右区间,当左右区间没有值,为"[]",不产生TreeNode,返回None。

2024-04-08 18:22:54 827

原创 代码随想录算法训练营Day 16|Python|513.找树左下角的值, 112. 路径总和,113.路径总和II, 106.从中序与后序遍历序列构造二叉树, 105.从前序与中序遍历序列构造二

根据中序遍历和后序遍历的特性,后序遍历的最后一个node一定是中介的根节点,因此在中序遍历中定位该node的index,以此区分左右子树得到left_in, right_in。注意中序遍历中左右子树的长度与后序遍历中左右子树的长度相同,因此可以在后序遍历中区分左右子树得到left_post, right_post,将left_in, left_post与right_in, right_post放入递归,返回root。的路径,这条路径上所有节点值相加等于目标和。层序遍历,return最后一行的第一个值。

2024-04-06 19:16:59 259 1

原创 代码随想录算法训练营Day 15|Python|110.平衡二叉树,257. 二叉树的所有路径,404.左叶子之和

给定一个二叉树,判断它是否是 平衡二叉树是指该树所有节点的左右子树的深度相差不超过 1。解题思路;确认输入参数:def get_height(root) 返回所在节点的高度,并左右对比,如果差值大于1返回-1停止条件:if not root: return 0 (def get_height)递归逻辑:分别求得左右高度,取最大值,加上当前值return 1+max(left, right)

2024-04-05 19:38:44 416 1

原创 代码随想录算法训练营Day 14|Python|104.二叉树的最大深度,111.二叉树的最小深度,222.完全二叉树的节点个数

的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。递归逻辑:返回子节点中的最高度并加上自身,max(maxDepth(left), maxDepth(right))+1。确认递归逻辑:如果左边为空右边不空,返回右边最小;最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。是指从根节点到最远叶子节点的最长路径上的节点数。叶子节点是指没有子节点的节点。

2024-04-04 16:43:21 276 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除