自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法训练营总结

经过60天的坚持打卡,系统的过了一遍leetcode经典题目,包括数组(二分查找)、链表、哈希表、字符串、栈与队列、二叉树、回溯、贪心、动态规划、单调栈。由于有一定的基础,也是本着练习C++的想法入门的,所有的题目会先用熟悉的python写一遍,再用C++写一遍。在入门C++方面,群友助教答疑非常有用,如果是自己看书或者资料,很难快速的定位问题。在有经验的人帮助下,可以非常快速的解决问题,开始上手leetcode类型的代码,给下一步编写C++程序奠定了很好的基础。

2024-03-29 11:28:57 981

原创 算法D60 | 单调栈3 | 84.柱状图中最大的矩形

今天是训练营最后一天,恭喜坚持两个月的录友们,接下来可以写一篇自己 代码随想录一刷的总结。好好回顾一下,这两个月自己的博客内容,以及自己的收获。有了之前单调栈的铺垫,这道题目就不难了。84.柱状图中最大的矩形。

2024-03-28 09:39:49 321

原创 算法D59 | 单调栈2 | 503.下一个更大元素II 42. 接雨水

建议是掌握 双指针 和单调栈,因为在面试中 写出单调栈可能 有点难度,但双指针思路更直接一些。在时间紧张的情况有,能写出双指针法也是不错的,然后可以和面试官在慢慢讨论如何优化。接雨水这道题目是 面试中特别高频的一道题,也是单调栈 应用的题目,大家好好做做。这道题和 739. 每日温度 几乎如出一辙,可以自己尝试做一做。739的nums扩展两倍即可。503.下一个更大元素II。

2024-03-27 14:58:47 366

原创 算法D58 | 单调栈1 | 739. 每日温度 496.下一个更大元素 I

大家可以读题,思考暴力的解法,然后在看单调栈的解法。就能感受出单调栈的巧妙。本题和 739. 每日温度 看似差不多,其实 有加了点难度。今天正式开始单调栈,这是单调栈一篇扫盲题目,也是经典题。496.下一个更大元素 I。

2024-03-26 14:42:50 335

原创 算法D57 | 动态规划17 | 647. 回文子串 516.最长回文子序列 动态规划总结篇

回文子串是连续的,回文子序列是可以不连续的。回文子序列要比求回文子串简单一点,因为情况少了一点,本题的难点在于根据递推关系确定逆向更新。647. 回文子串,求的是回文子串,而本题要求的是回文子序列, 大家要搞清楚两者之间的区别。动态规划解决的经典题目,如果没接触过的话,别硬想 直接看题解。516.最长回文子序列。

2024-03-25 16:58:57 438

原创 算法D55 | 动态规划16 | 583. 两个字符串的删除操作 72. 编辑距离

本题和动态规划:115.不同的子序列 相比,其实就是两个字符串都可以删除了,情况虽说复杂一些,但整体思路是不变的。最终我们迎来了编辑距离这道题目,之前安排题目都是为了 编辑距离做铺垫。583. 两个字符串的删除操作。

2024-03-23 11:42:21 419

原创 KDB+Q | D1 | 学习资源 基础数据类型

KDB+擅长处理时序数据, KDB+数据库是后端数据库,数据库操作/脚本都是基于q语言。可以在脚本中定义相应函数功能,然后在数据库上进行执行,并返回执行结果。比较特别的是symbol,这是immutable string. 长度=1,一个symbol是一个atom级的概念,因为是immutable的;vector: list的概念和python一致,simple_list/vector类似于numpy array的概念,矢量化操作的根基。官网会是主要的学习资源:https://code.kx.com/q/

2024-03-22 14:38:22 490

原创 算法D54 | 动态规划15 | 392.判断子序列 115.不同的子序列

这道题目算是 编辑距离问题 的入门题目(毕竟这里只是涉及到减法),慢慢的,后面就要来解决真正的 编辑距离问题了。但相对于刚讲过 392.判断子序列,本题 就有难度了 ,感受一下本题和 392.判断子序列 的区别。115.不同的子序列。

2024-03-22 12:02:48 226

原创 算法D53 | 动态规划14 | 1143.最长公共子序列 1035.不相交的线 53. 最大子序和 动态规划

其实本题和 1143.最长公共子序列 是一模一样的,大家尝试自己做一做。体会一下本题和 718. 最长重复子数组 的区别。这道题我们用贪心做过,这次 再用dp来做一遍。1143.最长公共子序列。1035.不相交的线。

2024-03-21 11:59:09 365

原创 算法D52 | 动态规划13 | 300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组

本题相对于昨天的动态规划:300.最长递增子序列 最大的区别在于“连续”。先尝试自己做做,感受一下区别。今天开始正式子序列系列,本题是比较简单的,感受感受一下子序列题目的思路。稍有难度,要使用二维dp数组了。674. 最长连续递增序列。718. 最长重复子数组。300.最长递增子序列。

2024-03-20 14:33:36 347

原创 算法D51 | 动态规划12 | 309.最佳买卖股票时机含冷冻期 714.买卖股票的最佳时机含手续费

和122买卖股票几乎一样的,只是卖出的时候减去手续费即可。最后return的一定是不持有股票状态,卡哥的版本最后return两个状态的最大值,有点奇怪。相对122.买卖股票的最佳时机II ,本题只需要在计算卖出操作的时候减去手续费就可以了,代码几乎是一样的,可以尝试自己做一做。本题加了一个冷冻期,状态就多了,有点难度,大家要把各个状态分清,思路才能清晰。714.买卖股票的最佳时机含手续费。309.最佳买卖股票时机含冷冻期。C++的max只能比较两个元素。股票问题做一个总结吧。

2024-03-19 13:23:35 1063

原创 算法D50 | 动态规划11 | 123.买卖股票的最佳时机III 188.买卖股票的最佳时机IV

这道题一下子就难度上来了,关键在于至多买卖两次,这意味着可以买卖一次,可以买卖两次,也可以不买卖。123的扩展版,这个版本记账型递推公式的优势就显示出来了。本题是123.买卖股票的最佳时机III 的进阶版。123.买卖股票的最佳时机III。188.买卖股票的最佳时机IV。

2024-03-18 16:35:52 543

原创 算法D48 | 动态规划10 | 121. 买卖股票的最佳时机 122.买卖股票的最佳时机II

股票问题是一个动态规划的系列问题,今日安排的题目不多,大家可以慢慢消化。122.买卖股票的最佳时机II。121. 买卖股票的最佳时机。

2024-03-17 21:58:27 641

原创 算法D47 | 动态规划9 | 198.打家劫舍 213.打家劫舍II 337.打家劫舍III

分别考虑[0, n-2] 和 [1, n-1]范围的打家劫舍198,选择两者最大值。今天就是打家劫舍的一天,这个系列不算难,大家可以一口气拿下。213.打家劫舍II。

2024-03-17 21:06:00 532

原创 算法D46 | 动态规划8 | 139.单词拆分 多重背包

把单词放进string背包里,由于string的顺序重要,所以是排列问题,需要先遍历背包,再遍历物品。关于 多重背包,力扣上没有相关的题目,所以今天大家的重点就是回顾一波 自己做的背包题目吧。关于多重背包,你该了解这些!

2024-03-14 15:06:49 684

原创 算法D45 | 动态规划7 | 70. 爬楼梯 (进阶) 322. 零钱兑换 279.完全平方数

翻译成背包问题,即:在容量为n的背包里,装入重量为1/2的物品,可以重复利用物品,所以是完全背包问题。由于顺序在结果中重要,所以是排列问题,所以先遍历背包,后遍历物品。和322类似的,把完全平方数当成硬币,放进大小为n的包里,硬币个数最少的方案。本题 和 322. 零钱兑换 基本是一样的,大家先自己尝试做一做。如果求排列数就是外层for遍历背包,内层for循环遍历物品。第一遍推的,代码稍微冗余,逻辑差不多,模板还是模板啊。优化一下卡哥的版本,遍历i到n的sqrt的int即可。70. 爬楼梯 (进阶)

2024-03-13 11:41:43 664

原创 算法D44 | 动态规划6 | 完全背包 518. 零钱兑换 II 377. 组合总和 Ⅳ

518和377两个题适合一起品一品,两层forloop的顺序对于结果是由影响的,如果先遍历物品后遍历背包,结果是组合,即518题;反之,如果先遍历背包后遍历物品,结果是排列,即377题。力扣上没有纯粹的完全背包的题目,所以大家看本篇了解一下 完全背包的理论。后面的两道题目,都是完全背包的应用,做做感受一下。518. 零钱兑换 II。377. 组合总和 Ⅳ。

2024-03-12 16:26:14 697

原创 算法D43 | 动态规划5 | 1049. 最后一块石头的重量 II 494. 目标和 474.一和零

通过这道题目,大家先粗略了解, 01背包,完全背包,多重背包的区别,不过不用细扣,因为后面 对于 完全背包,多重背包 还有单独讲解。大家重点理解 递推公式:dp[j] += dp[j - nums[i]],这个公式后面的提问 我们还会用到。1049. 最后一块石头的重量 II。很像了,可以尝试先自己思考做一做。416. 分割等和子集。

2024-03-11 21:26:19 630

原创 算法D41 | 动态规划4 | 01背包问题,你该了解这些! 01背包问题,你该了解这些! 滚动数组 416. 分割等和子集

正式开始背包问题,背包问题还是挺难的,虽然大家可能看了很多背包问题模板代码,感觉挺简单,但基本理解的都不够深入。如果做过背包类问题,可以先看视频,很多内容,是自己平时没有考虑到位的。如果是直接从来没听过背包问题,可以先看文字讲解慢慢了解 这是干什么的。背包问题,力扣上没有原题,大家先了解理论,今天就安排一道具体题目。本题是 01背包的应用类题目。416. 分割等和子集。

2024-03-10 16:03:26 756

原创 算法D40 | 动态规划3 | 343. 整数拆分 96.不同的二叉搜索树

关键是想清楚递推关系dp[i] = max(dp[i], max((i - j) * j, dp[i - j] * j))。- 因为在递推公式推导的过程中,每次计算dp[i],取最大的而已。(同个i下,不同的j更新取最大的dp[i])重点是发现递推关系,i的左子树的形状(left个)和left的dp的形状(布局)一致。今天两题都挺有难度,建议大家思考一下没思路,直接看题解,第一次做,硬想很难想出来。在取最大值的时候,为什么还要比较dp[i]呢?96.不同的二叉搜索树。

2024-03-09 15:25:34 814

原创 算法D39 | 动态规划2 | 62.不同路径 63. 不同路径 II

这个题看到路径的表示,第一直觉就是一个组合数的问题,学了一下C++计算组合数防止溢出的小技巧。第二个方法再动态规划完成, 重点是把二维的动态规划dp[i][j]表示清楚,从左右到从上到下的顺序遍历就行。C++计算组合数需要考虑溢出的问题,long long int并不能通过所有的case,那么修改数据容量就不是个完备的解决方案了。今天开始逐渐有 dp的感觉了,题目不多,就两个 不同路径,可以好好研究一下。为了防止溢出,从小到大考虑,而不是从大到小(n到n-m+1, m到1)。63. 不同路径 II。

2024-03-07 11:44:57 1172

原创 算法D38 | 动态规划1 | 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯

这道题目力扣改了题目描述了,现在的题目描述清晰很多,相当于明确说 第一步是不用花费的。如果没做过动态规划的题目,看我讲的理论基础,会有感觉 是不是简单题想复杂了?其实并没有,我讲的理论基础内容,在动规章节所有题目都有运用,所以很重要!和斐波那契思路基本一致,递归是会超时的,注意内存和时间的优化,O(n)最优。很简单的动规入门题,但简单题使用来掌握方法论的,还是要有动规五部曲来分析。本题大家先自己想一想, 之后会发现,和 斐波那契数 有点关系。如果做过动态规划题目的录友,看我的理论基础 就会感同身受了。

2024-03-06 18:24:59 1222

原创 算法D37 | 贪心算法6 | 738.单调递增的数字 968.监控二叉树

思路还是比较直接的,动手画一画,需要耐心把不同情况梳理清楚。关键思路是把状态(0, 1, 2)分清楚。优化了一下,第一遍先更新flag指针;第二遍更新后续的9,比python版本稍优。可以看看贪心算法的总结,贪心本来就没啥规律,能写出个总结篇真的不容易了。本题是贪心和二叉树的一个结合,比较难,一刷大家就跳过吧。尝试了下写成非string修改的,会复杂一点。968.监控二叉树 (可以跳过)738.单调递增的数字。

2024-03-06 17:22:08 1138

原创 算法D36 | 贪心算法5 | 435. 无重叠区间 763.划分字母区间 56. 合并区间

一是学一下用hash来表示这里的occ_map,会比dictionary更节省空间, 二是卡哥这里用max贪心的思想来更新右节点,用right==i来判断,很巧妙。今天的三道题目,都算是 重叠区间 问题,大家可以好好感受一下。都属于那种看起来好复杂,但一看贪心解法,惊呼:这么巧妙!先按左端点排序,然后按是否overlap分类讨论,看是否更新区间或者结果。还是属于那种,做过了也就会了,没做过就很难想出来。分情况讨论,需要多建一个当前字母集合。不过大家把如下三题做了之后,本题相对来说就比较难了。

2024-03-04 18:03:56 1320

原创 算法D30 | 回溯算法6 | 332.重新安排行程 51. N皇后 37. 解数独

因为 一刷 也不求大家能把这么难的问题解决,所以 大家一刷的时候,就了解一下题目的要求,了解一下解题思路,不求能直接写出代码,先大概熟悉一下这些题,二刷的时候,随着对回溯算法的深入理解,再去解决如下三题。python版本只有优化到 使用字典 并逆序查找才可以通过所有的测试用例。今天这三道题都非常难,那么这么难的题,为啥一天做三道?大家今天的任务,其实是 对回溯算法章节做一个总结就行。332.重新安排行程(可跳过)51. N皇后(可跳过)37. 解数独(可跳过)

2024-03-02 18:56:35 1114

原创 算法D34 | 贪心算法4 | 860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球

难点在于读懂题目,读懂题目的关键在于递推写清楚case;根据题目直接写出来就是了。本题是一道 重叠区间的题目,好好做一做,因为明天三道题目,都是 重叠区间。本题有点难度,和分发糖果类似,不要两头兼顾,处理好一边再处理另一边。本题看上好像挺难,其实挺简单的,大家先尝试自己做一做。452. 用最少数量的箭引爆气球。分5/10/20讨论找零方案即可。406.根据身高重建队列。

2024-03-02 14:07:02 1247

原创 算法D33 | 贪心算法3 | 1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果

情况三:如果累加的最小值是负数,汽车就要从非0节点出发,从后向前,看哪个节点能把这个负数填平,能把这个负数填平的节点就是出发节点。本题涉及到一个思想,就是想处理好一边再处理另一边,不要两边想着一起兼顾,后面还会有题目用到这个思路。情况三是比较难想到的,从后向前看如何覆盖cum_sum of net gas.本题简单一些,估计大家不用想着贪心 ,用自己直觉也会有思路。本题有点难度,不太好想,推荐大家熟悉一下方法二。1005.K次取反后最大化的数组和。

2024-03-02 10:40:14 1286

原创 算法D29 | 回溯算法5|491.递增子序列 46.全排列 47.全排列 II

本题 就是我们讲过的 40.组合总和II 去重逻辑 和 46.全排列 的结合,可以先自己做一下,然后重点看一下 文章中 我讲的拓展内容。used[i - 1] == true 也行,used[i - 1] == false 也行。本题重点感受一下,排列问题 与 组合问题,组合总和,子集问题的区别。本题和大家刚做过的 90.子集II 非常像,但又很不一样,很容易掉坑里。一个是去重,一个是判断是否递增;去重发生在横向,递增发生在纵向。用指针实现标记是否使用过,更为节省内存和时间。横向去重需要额外构建一个集合。

2024-02-29 21:34:21 1157

原创 算法D27|回溯算法4| 93.复原IP地址 78.子集 90.子集II

大家之前做了 40.组合总和II 和 78.子集 ,本题就是这两道题目的结合,建议自己独立做一做,本题涉及的知识,之前都讲过,没有新内容。C++版本写成直接在string里insert更简洁一些,C++没有类似python string.join的写法。子集问题,就是收集树形结构中,每一个节点的结果。整体代码其实和 回溯模板都是差不多的。本期本来是很有难度的,不过 大家做完 分割回文串 之后,本题就容易很多了。和上一题类似,区别在于去重,去重部分和。

2024-02-29 19:51:48 1288

原创 算法D32 | 贪心算法2 | 122.买卖股票的最佳时机II 55. 跳跃游戏 45.跳跃游戏II

贪心就是这样,有的时候 会感觉简单到离谱,有时候,难的不行,主要是不容易想到。移动下标达到了当前覆盖的最远距离下标时,步数就要加一,来增加覆盖距离。本题如果没接触过,很难想到,所以不要自己憋时间太久,读题思考一会,没思路立刻看题解。不一定非要明确一次究竟跳几步,每次取最大的跳跃步数,这个就是可以跳跃的覆盖范围。:当前可移动距离尽可能多走,如果还没到终点,步数再加一。本题解法很巧妙,大家可以看题思考一下,在看题解。这个范围内,别管是怎么跳的,反正一定可以跳过来。只收集每天的正利润,利润可以每天分解。

2024-02-29 12:59:20 1473

原创 算法D31 | 贪心算法1 | 455.分发饼干 376. 摆动序列 53. 最大子序和

从代码角度上来讲:遍历 nums,从头开始用 count 累积,如果 count 一旦加上 nums[i]变为负数,那么就应该从 nums[i+1]开始从 0 累积 count 了,因为已经变为负数的 count,只会拖累总和。局部最优:当前“连续和”为负数的时候立刻放弃,从下一个元素重新计算“连续和”,因为负数加上下一个元素 “连续和”只会越来越小。局部最优:删除单调坡度上的节点(不包括单调坡度两端的节点),那么这个坡度就可以有两个局部峰值。学完贪心之后再去看动态规划,就会了解贪心和动规的区别。

2024-02-28 22:43:07 1619

原创 算法D26|回溯算法3| 39. 组合总和 40.组合总和II 131.分割回文串

纵向剪枝条件 target<0, 横向剪枝条件,start_idx从大于等于目前path的最后一个数字开始(需sort candidates)。注意题目中给我们 集合是有重复元素的,那么求出来的 组合有可能重复,但题目要求不能有重复组合。本题是 集合里元素可以用无数次,那么和组合问题的差别 其实仅在于 startIndex上的控制。本题较难,大家先看视频来理解 分割问题,明天还会有一道分割问题,先打打基础。本题开始涉及到一个问题了:去重。

2024-02-28 20:54:25 1124

原创 算法D25 | 回溯算法2 | 216.组合总和III 17.电话号码的字母组合

本题和77组合 类似,剪枝操作根据sum<0来判断(前提是i>0且target_sum>0)。本题大家刚开始做会有点难度,先自己思考20min,没思路就直接看题解。N叉树的遍历,不涉及剪枝,需要穷举所有的组合即可。如果把 组合问题理解了,本题就容易一些了。C++版本代码有点问题,某些情况下会超时。17.电话号码的字母组合。216.组合总和III。

2024-02-28 15:54:09 1173

原创 算法D24 | 回溯算法1| 理论基础 77. 组合

暴力搜索在实际问题中容易超时,大部分问题需要考虑剪枝,一般是从遍历时每一层的个数i这里做文章。其实在讲解二叉树的时候,就给大家介绍过回溯,这次正式开启回溯算法,大家可以先看视频,对回溯算法有一个整体的了解。对着 在 回溯算法理论基础 给出的 代码模板,来做本题组合问题,大家就会发现 写回溯算法套路。在回溯算法解决实际问题的过程中,大家会有各种疑问,先看视频介绍,基本可以解决大家的疑惑。本题关于剪枝操作是大家要理解的重点,因为后面很多回溯算法解决的题目,都是这个剪枝套路。

2024-02-25 23:04:53 1323

原创 算法D23 | 二叉树9 | 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树

第一反应是两次遍历,第一遍求和,第二遍中序遍历逐个减去元素。优化一下直接把中序遍历倒过来,这样只需要遍历一遍,即右中左。左右子树是中点左右的数组构造的子树,结合在一起即可。C++版本写成指针代码会简洁很多,因为没有slicing生成新的变量的过程,非常明确的节省内存的操作。本题也不难,在 求二叉搜索树的最小绝对差 和 众数 那两道题目 都讲过了 双指针法,思路是一的。这道题目比较难,比 添加增加和删除节点难的多,建议先看视频理解。删除一个节点,是通过改变其父节点指针,使其指向孩子来实现的。

2024-02-23 22:31:01 1366

原创 算法D22 | 二叉树8 | 235. 二叉搜索树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点

思路: 可以不用修改树的结构,只要找到对的插入位置,空节点位置插入数值即可。这里root.left= 和root.right= 用来承接修改之后的底层树节点。本题比想象中的简单,大家可以先自己想一想应该怎么做,然后看视频讲解,就发现 本题为什么比较简单了。如果是迭代法,则需要一个变量parent记录上一个节点,用于连接新节点。相对于 二叉树的最近公共祖先 本题就简单一些了,因为 可以利用二叉搜索树的特性。相对于 插入操作,本题就有难度了,涉及到改树的结构。

2024-02-18 22:36:30 1708

原创 算法D20 | 二叉树7 | 530.二叉搜索树的最小绝对差 501.二叉搜索树中的众数 236. 二叉树的最近公共祖先

这里补充一下python引用传递和值传递的问题,当arr作为参数传入的时候,由于arr是python的基本类型,所以是引用传递;这里有一个细节需要想清楚,traversal-中部分,先遍历,再记录结果,这样区分会比较清晰,不混乱。(在其他语言中可能指基本类型),函数中对这个参数的更改是不会影响到函数外的,这个传递也就是。和 530差不多双指针思路,不过 这里涉及到一个很巧妙的代码技巧。本题其实是比较难的,可以先看我的视频讲解。可以先自己做做看,然后看我的视频讲解。进行的,如果传的是一个。

2024-02-18 15:37:16 1600

原创 算法D19 | 二叉树6 | 654.最大二叉树 617.合并二叉树 700.二叉搜索树中的搜索 98.验证二叉搜索树

又是构造二叉树,昨天大家刚刚做完 中序后序确定二叉树,今天做这个 应该会容易一些, 先看视频,好好体会一下 为什么构造二叉树都是 前序遍历。这次是一起操作两个二叉树了, 估计大家也没一起操作过两个二叉树,也不知道该如何一起操作,可以看视频先理解一下。二叉搜索树是有序的,和普通的二叉树不同,左子树>根节点>右子树。若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;本题的核心是:中序遍历搜索树出来的数组是递增的有序数组。

2024-02-16 19:07:19 1827 1

原创 算法D18 | 二叉树5 | 513.找树左下角的值 112. 路径总和(拓113)106.从中序与后序遍历序列构造二叉树(拓105)

513. 找树左下角的值本地递归偏难,反而迭代简单属于模板题, 两种方法掌握一下Python迭代(层序遍历):这个题前中后序遍历都可以,因为不涉及中间节点的处理,只处理了左右节点。层序遍历比较直观每一行都记录最左边的节点的值并且更新。注意:最左边的节点不一定是left child, 也要有可能是right child。

2024-02-16 16:50:43 1772 1

原创 算法D17 | 二叉树4 | 110.平衡二叉树 257. 二叉树的所有路径 404.左叶子之和

路径是从root到leaf,所以采用前序遍历(中左右),由于是路径,所以遍历左右节点之后又回溯,只记录路径部分。这是大家第一次接触到回溯的过程, 我在视频里重点讲解了 本题为什么要有回溯,已经回溯的过程。其实本题有点文字游戏,搞清楚什么是左叶子,剩下的就是二叉树的基本操作。迭代法,大家可以直接过,二刷有精力的时候 再去掌握迭代法。再一次涉及到,什么是高度,什么是深度,可以巩固一下。如果对回溯 似懂非懂,没关系, 可以先有个印象。257. 二叉树的所有路径 (优先掌握递归)树 (优先掌握递归)

2024-02-14 18:06:20 2071 1

空空如也

空空如也

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

TA关注的人

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