自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录训练营第六十天84.柱状图中最大的矩形

2、判别条件不同,接雨水是需要在出现比栈顶元素大的元素时求累计面积,而求柱形面积是在出现更小高度矩形时求每一种矩形的面积并比较;1、计算面积的方式不同,接雨水是找填补空缺的面积,而求柱形面积是求过往最低高度所能囊括的面积;此外,接雨水只有两个矩形就接不了了,而求柱形面积时也需要在数组的头部和尾部塞入0。84.柱状图中最大的矩形。

2023-12-14 10:56:24 59

原创 代码随想录训练营第五十九天503.下一个更大元素II42. 接雨水

相比于温度变化,本题增加了条件。2、当前高度等于栈顶下标对应的高度,将栈顶元素弹出,塞入新的位置下标,计算面积时同时将两个相等元素的顶上积水空间计算出来;此外,应用单调栈解决问题一定要注意,栈中记录的是数组元素的下标递增排序。1、当前高度小于栈顶下标对应的高度,将该元素塞入栈中;两道题都是对于单调栈存储序号的延申应用。3、大于栈顶元素的比较,并赋值。503.下一个更大元素II。1、小于栈顶元素的塞入。2、等于栈顶元素的塞入。

2023-12-13 10:53:22 67

原创 代码随想录训练营第五十八天739. 每日温度496.下一个更大元素 I

3、当前元素大于栈顶元素,此时栈顶元素(在栈中是下标的表示方法)在结果数组中对应的下一个更大元素的位置就是当前遍历i,把栈顶元素pop掉,再判断栈顶,直到不再大于或者栈空;2、当前元素等于栈顶元素,根据题意,也把当前元素塞入栈;1、当前元素小于栈顶元素,这时把当前元素也塞入栈;496.下一个更大元素 I。

2023-12-12 11:06:27 80

原创 代码随想录训练营第五十七天647. 回文子串516.最长回文子序列

需要注意本题求的是回文子串的最大长度,而不是回文子序列,因此,对于dp数组的定义就会有所不同:dp[i][j]表示以i开头,以j结尾的字串是否是回文串,因此dp数组的类型为bool型,此外,对应的递推函数也发生了变化:若是当前i,j下标元素相等,则表示最长长度可以加2;516.最长回文子序列。

2023-12-11 15:39:51 88

原创 代码随想录训练营第五十六天583. 两个字符串的删除操作72. 编辑距离

定义dp数组dp[i]为使word1[i-1]之前的数组完全转化为word[j]所需要的最小步数,此时初始化dp数组,dp[i][0]=i,dp[0][j]=j,最后就是可能出现的情况,倘若当前i-1元素与j-1元素相等,此时dp[i][j]=dp[i-1][j-1],若是不相等则有三种可能:需要增加:dp[i][j]=dp[i][j-1]+1;需要删除:dp[i][j]=dp[i-1][j]+1;当相等时,dp[i][j]=dp[i-1][j-1](不用考虑这两个元素了);此外,在写出递推表格验证。

2023-12-05 21:43:35 49

原创 代码随想录训练营第五十五天392.判断子序列115.不同的子序列

应用动态规划方法解决判断子序列的问题,本人认为最重要的就是递归函数的推导:dp[i][j]表示以i-1结尾s序列和以j-1结尾t序列的相同子序列的长度,此时每一个i,j组合,dp[i][j]有两种状态。s[i-1]=t[j-1],此时dp[i][j]应该在dp[i-1][j-1]的基础上加一,i-1,j-1,表示i-2,j-2位置上的相同元素长度;=t[j-1],此时当前长度应该不变,也就相当于这一次的j没有移动。此题的难度就很高了,理解起来十分困难,而且dp数组抽象,感觉记也记不住,就没刷。

2023-12-04 21:48:11 51

原创 代码随想录训练营第五十二天1143.最长公共子序列1035.不相交的线53. 最大子序和

给定两个数组,求最长公共子序列,此时dp数组需要用二维的,dp[i][j]表示下表i-1.j-1所能拥有的最长公共子序列长度(为了方便定义,故而用i-1,j-1),此时两个数组i,j元素有两种可能:相等,此时dp[i][j]=dp[i-1][j-1]+1;2、从当前数字从新开始,dp[i]=nums[i];递归函数:dp[i]有两种来由:1、当前数字作为结尾,续上,此时dp[i]=dp[i-1]+nums[i],首先定义dp数组含义:dp[i]表示以下标i结尾的额最大子序列和;每次将最大的和存入结果中。

2023-12-02 22:52:00 38

原创 代码随想录训练营第五十二天300.最长递增子序列674. 最长连续递增序列718. 最长重复子数组

对于两个数组中从不同位置开始的相同子数组,两层for循环分别遍历两个数组,并在每一次移动时判断是否相同;若是i-1,位置元素与j-1位置元素相等,则继承i-2,j-2位置元素最长长度dp[i-1][j-1].定义dp数组dp[i]为以num[i]为结尾的增长数组的最大长度;674. 最长连续递增序列。718. 最长重复子数组。300.最长递增子序列。此时dp[0]=1;

2023-12-01 21:40:17 41

原创 代码随想录训练营第五十一天309.最佳买卖股票时机含冷冻期714.买卖股票的最佳时机含手续费

其中持有股票可能是之前就持有、之前冷冻期今日买入、之前不持有今日买入;3、今日卖出股票(专门设立,为了导出冷冻期)714.买卖股票的最佳时机含手续费。309.最佳买卖股票时机含冷冻期。

2023-11-30 17:11:45 38

原创 代码随想录训练营第五十天123.买卖股票的最佳时机III188.买卖股票的最佳时机IV

之前做过只有一次购买机会的股票题,但是一道了两次就不知道如何是好了,答案。123.买卖股票的最佳时机III。188.买卖股票的最佳时机IV。

2023-11-29 17:16:34 37

原创 代码随想录训练营第四十九天121. 买卖股票的最佳时机122.买卖股票的最佳时机II

当前一天的dp[i][0](持有股票的状态)有两种可能,前一天就持有了,或者这一天再买入(只能买入一次);相比较于整个数组只能买卖一次,可以多次买卖时,dp[i][0]则变成了另外两种情况:前一天买入,当天不动;对于每一天都有可能的两个状态:持有股票、不持有股票,只写一维的状态函数难以表达全部意义。其中每次都要取最大值:买入花最少钱,卖出花最多钱。122.买卖股票的最佳时机II。121. 买卖股票的最佳时机。

2023-11-28 10:59:45 26

原创 代码随想录训练营第四十八天198.打家劫舍213.打家劫舍II337.打家劫舍III

第一次接触打家劫舍问题,罪犯的每一次选择如何转化为dp数组的递归函数问题乃是本题的关键,定义dp数组dp[i]为偷盗到i位置房屋所能达到的最大金额,每一次都有两种选择:偷或者不偷,这是个问题,若是偷了,则dp[i]=dp[i-2]+nums[i];337.打家劫舍III。213.打家劫舍II。

2023-11-27 16:11:14 22

原创 代码随想录训练营第四十六天139.单词拆分

i和j分别是已经遍历的字符串长度,以及在整体遍历过程中,把字串(0-i)再遍历一遍,寻找能够查询到的部分,并在dp数组中dp[i]标致好bool值,说到dp数组,本题的核心无疑是dp数组的逐个验证:若是(i-j i)部分能查到,且dp[j]也是能查到的,则当前能查到。单词拆分我想到的方法是先遍历背包,再遍历词典,其中背包在外层,通过双指针方法,遍历right,left则在满足条件(找到单词)时更新,同时内层在词典中挨个查找,不过没有付诸实现。

2023-11-26 16:11:44 21

原创 代码随想录训练营第四十四天70. 爬楼梯322. 零钱兑换279.完全平方数

相较于上一题,本题dp[i]代表的是所需的硬币数,因此递归函数变为了:dp[j]=min(dp[j],dp[j-i]+1);同时此题为组合问题,外层for循环遍历物品,内层for遍历背包,还有就是递归函数中,比较的是本身还有dp[j-i*i]+1。

2023-11-25 15:17:10 14

原创 代码随想录训练营第四十四天完全背包518. 零钱兑换 II377. 组合总和 Ⅳ

相较于一维背包,完全背包的主要特征是在确定好最大背包的容量之后每个物体都可以被无限次选取,这时,主要需要改变就是双层for函数的结构 ,首先根据问题是排列问题还是组合问题,若是组合问题,外层仍然选用物品循环、内层选用背包循环;若是排列问题,外层则需要选用背包循环,内层选择物品数。518. 零钱兑换 II。377. 组合总和 Ⅳ。

2023-11-23 16:44:46 14

原创 代码随想录训练营第四十三天1049. 最后一块石头的重量 II 494. 目标和474.一和零

本题就是较为明显的背包塞入问题,针对0 和1 两个值都对应的背包,每当是塞入一个字符串时,需要比较不塞入当前串和在塞入后数组加一但是0 1值减少的数组量的最大值;本题需要将互相撞击石头的问题转化为将石头尽可能分成重量相同的两部分的问题,也就相当于查找在石头总重量一半大小的背包中,能尽可能多的装石头的问题。1049. 最后一块石头的重量。

2023-11-22 16:12:39 23

原创 代码随想录训练营第四十二天背包问题416. 分割等和子集

作为一维背包问题的应用,本题相对抽象,将一个数组中的数分割成相等的两部分,可以看作在数组中找出几个数的组合,使其和为数组总和的一半,同样可以看作,往容量为总和一半的背包中塞入数组的最大值是否为总和一半,也就是是否有和等同与综合一半的数组组合。同时背包容量在大于当前所要盛放物体的量时遍历,小于时不再遍历(无效果,不可能再塞入)10000是总和所能达到的最大值,背包容量是从所能达到的最大值开始遍历。416. 分割等和子集。初始化时则是将数组置0,

2023-11-21 23:07:49 20

原创 代码随想录训练营第四十一天343. 整数拆分96.不同的二叉搜索树

其中最难的就是对于递归函数的思考,很难想出来,同时还需要注意分割的对称性,j只需要遍历到i/2,且只需要比较dp[i-j]*j与(i-j)的最大值即可,不用管dp[j]*i-j;2、初始化dp[2]=2,dp[3]=5,最主要的dp[0]=1,作为乘积。3、递归函数,每个作为头节点j的数字有dp[j-1]*dp[i-j]种可能。1、dp数组的含义,dp[i]表示将数i拆分所得的最大乘积;1、dp[i]表示数字为i的二叉搜索树个数;2、初始化dp数组,dp[2]=1;4、递归顺序,取从前往后的顺序递归;

2023-11-20 17:27:01 22

原创 代码随想录训练营第三十九天62.不同路径63. 不同路径 II

注意此处一定要用obstacleGrid[0]而不是1,不然会报错,因为可能存在数组只有一行,以后都记住,一定要用二维数组第一个元素获得其大小。与上一题类似,定义同样大小的dp数组,并对边界值赋值,随后对没有障碍的点根据递归函数进行计算。这样在当前行行到障碍物时还会继续走下去,应该避免。63. 不同路径 II。

2023-11-18 16:48:13 593

原创 代码随想录训练营第三十八天理论基础、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

不过需要注意的是此时dp[0]的含义无需细讲,而dp[1]和dp[2]的含义分别是登上第一和第二层的方法数。从数列角度上来说我是倾向与dp[0]=1。第一次做动态规划的题,对于这种将数列问题转换为函数问题还有些不习惯。F(n) = F(n - 1) + F(n - 2),其中 n > 1。1、确定dp数组以及下标的含义。注意定义dp数组时要是n+1。746. 使用最小花费爬楼梯。3、dp数组如何初始化。509. 斐波那契数。5、举例递推dp数组。

2023-11-17 18:27:45 21

原创 代码随想录训练营第三十七天738.单调递增的数字

本题需要注意的的就是当出现连续相同数字时若相同数字后的数字若是变小、此时需要把连续相同数字开始位置的数字变为当前数字减一,后面全部变为9。首先,便是第一个for循环中的nums[i-1]--;,此处nums是字符串 怎么能加减呢;其次就是最后调用的stoi函数,完全没接触过,不过一看就就知道是把字符串转化为数字的。在之后,把所有标记及之后的数字变为“9”,此时,字符串就完成了变化。738.单调递增的数字。

2023-11-16 21:06:50 51

原创 代码随想录训练营第三十六天435. 无重叠区间763.划分字母区间56. 合并区间

本题我的第一想法是把字符串中的每一种字母所在的区间都划分出来,并在之后按照覆盖区间的方法根据是否接触,决定是否把两个区间合并,但是随后又想到,难道要用26个循环判断吗(26个字母)而看了答案,发现答案的思路十分巧妙:首先将每个字母的最后出现位置制作成数组,主要是这个原理,怎么想都想不明白,可能重点是“按照右边界排序,从左到右记录非交叉区间的个数”这一句吧,毕竟我也没找到反例。这样看来我对于集合的边界问题还是没整明白。根据上一题自己的想法:把字符串转化为区间,并判断覆盖。这是试错了好几次后的教训。

2023-11-15 15:47:30 21

原创 代码随想录训练营第三十五天860.柠檬水找零406.根据身高重建队列452. 用最少数量的箭引爆气球

根据顾客给出的是五元、十元、二十元分情况判断应该的找零情况:给五元就收下、给十元就看有没有五元,给二十元先判断有没有一个十元、一个五元、其次再考虑有没有三个五元(因为一个十元和一个五元相比于三个五元来说应用的范围更广泛一些)本题相对重要的就是其中的数学思想,先根据数组中每个元素的左边界值进行从小到大的排序,在之后则是先判断后一个元素的左边界值是否大于当前元素的右边界值,若大于,则需要额外一箭,,此时将这个数组people打乱、并给你打乱后的数组,请你把原数组还原回来。452. 用最少数量的箭引爆气球。

2023-11-14 20:50:43 22

原创 代码随想录训练营第三十四天1005.K次取反后最大化的数组和134. 加油站135. 分发糖果

本体的思路十分新颖,由于每两个相邻孩子不同成绩就要成绩高的比成绩低的多的糖果所以对于高分的在左边以及高分的在右侧两种情况,这时,就需要转换思路不再是一个一个的从左到右每个孩子成绩左右比较判断,而是先从左到右挨个比较一次,再从右到左挨个比较一次,第一次只要右侧比左边大,就糖果加一,3、累加和大于零,但是累加的最低点小于零,此时需要从后往前(因为车是沿着数组从前往后跑,并逐个计量的)累加判断什么时候对位差的和能覆盖住累加最低点的负值,此时便可以选为开始节点。剩下的就是简单的判断、反转,求和了。

2023-11-13 11:05:15 23

原创 代码随想录训练营第三十二天122.买卖股票的最佳时机II55. 跳跃游戏45.跳跃游戏II

prices[3] - prices[0]相当于(prices[3] - prices[2]) + (prices[2] - prices[1]) + (prices[1] - prices[0])这样只需要求正数差的和即可(负数差不取)。同时计数加一(当数组开始时直接计数加一)。122.买卖股票的最佳时机II。

2023-11-11 23:12:34 24

原创 代码随想录训练营第三十一天455.分发饼干376. 摆动序列53. 最大子序和

总体来说,贪心算法不想递归、回溯算法的结构性那么强,更多的好像是对于要处理问题的分割。理论上是这么说,落到实际上就是做每一道题的时候别想那么多,找出部分最好的解就得了。两种分法:一种是先满足胃口大的再满足胃口小的,另一种就是反过来。

2023-11-10 11:09:07 24

原创 代码随想录训练营第二十九天491.递增子序列46.全排列47.全排列 II

排列的问题,因为是要求所有元素都存在,故应该每次递归时path的大小一旦等于nums就可以塞入result。每次通过改变numsde大小,防止当前枝前面出现的元素重复出现,但是比起定义used表虽然好理解,却相对麻烦,难以扩展。而每次递归都需要重新定义set,因为这只是当前层次递归内所需要的记录,下一层就不需要记住了。终止条件同样是回溯的常用终止条件:当index超过数组大小时,结束。第一个if是对于同一层的操作,第二个if是对于同一枝的后续操作。

2023-11-08 16:26:47 62

原创 代码随想录训练营第二十八天93.复原IP地址78.子集90.子集II

同时每一次产生新的path都将其塞入result。这样就避免了最终结果中因为数组中元素重复产生的重复数组。

2023-11-07 22:38:20 27

原创 代码随想录训练营第二十七天39. 组合总和40.组合总和II131.分割回文串

以上为定义一个bool型数组used。本题同样作为组合题目,结构与其他组合题目相似,都是定义void函数,前面写好终止条件,下面是for循环以及递归回溯结构,不同的是本题要求“在进入下一层递归前当前元素置为true推出递归,即将进入本层下一个元素时置为false.选择每一层开始的位置仍可以是当前节点,同时要求“找出。仍然是将组合问题抽象成多叉树结构并根据要求“中的每个数字在每个组合中只能使用。首先回文串的函数需要提前定义。中可以使数字和为目标数。

2023-11-06 15:43:17 22

原创 代码随想录训练营第二十五天216.组合总和III17.电话号码的字母组合

总结起来就是先化树,再用递归三部曲,结合回溯思想。同时注意好全局变量的定义与每次传递参数的选择。对于每一种数字的情况如何找出对应的字符串;如何把数字字符串转化为方便读懂的语言;还有就是关键的如何遍历,如何回溯。17.电话号码的字母组合。216.组合总和III。

2023-11-04 20:45:13 84

原创 代码随想录训练营第二十四天77. 组合

其次,本题终止条件明显是达到了组合要求的数字个数,便返回上一层,退出递归。并额外定义计数指标index用来指示没一层递归应该从哪个数字开始记录。首先回溯一般递归函数都是 void类型,参数可以慢慢根据需要确定。1、递归函数的返回值和参数。2、回溯函数终止条件。

2023-11-03 10:59:25 105

原创 代码随想录训练营第二十三天669. 修剪二叉搜索树108.将有序数组转换为二叉搜索树538.把二叉搜索树转换为累加树

本题第一眼想到的就是将搜索二叉树转换为递增数组,并对数组的每一个点重新赋值,再重组为二叉树,但是感觉会超时,而且过程繁琐。在之后才明白了不需要那么麻烦,通过将每一层判断不在数值范围内的子节点的下一层的左或右(根据该节点是大于最大值还是小于最小值判断)直接接到上一层(即返回下一层的节点)实现对于超出范围节点的忽视。本题第一眼想到的是通过将给定数组分段的模式来实现递归,但是采用的是第一次用的重新构建数组的方法,在看过答案之后对于递归数字的方法实现数组的切片有了更多的体会。538.把二叉搜索树转换为累加树。

2023-11-02 15:55:50 22

原创 代码随想录训练营第二十二天235. 二叉搜索树的最近公共祖先701.二叉搜索树中的插入操作450.删除二叉搜索树中的节点

从数学角度来说,本体应用了搜索二叉树的特性:所有节点唯一且所有左侧节点小于右侧节点,这样当我们确定了所给的两个节点(p,q)时,只需要找到第一个节点对应的值处在(p,q)区间的节点就是我们要找的节点。同时定义一个全局变量parent用来定义上一层的节点,这样每到一层,先判断,若为空节点,则开始在上一层节点后安插,若不是,则将当层节点填入parent开始下一层。第二点就是每一次将当前节点的左右指针指向递归后的返回值,这样在更新整个二叉树的时候就会每一个节点重新定义左右子枝,在最后返回root就可以了。

2023-11-01 15:50:26 29 1

原创 代码随想录训练营第二十一天530.二叉搜索树的最小绝对差501.二叉搜索树中的众数236. 二叉树的最近公共祖先

由于题目中说明了二叉树是搜索二叉树,故可以将根据中序遍历将二叉树拍成数组,此时该数组为递增数组,在数组中逐次更新差值的最小值(因为是递归数组,只需要计算nums[i]-nums[i-1]即可)并在最后返回差值的最小值即可。同时答案中也包含了第二种情况也就是q是p的祖先,在返回q的值的时候直接就返回了最近祖先。该代码由于写作惯性,i仍然是从0开始的,导致最终结果出错。本题我偏向的是先通过中序遍历将二叉树转换为链表中的数据,本题难度不小,我是先看的视频再做的视频链接。每一层都返回存在的p,p值的节点。

2023-10-31 22:31:50 37 1

原创 代码随想录训练营第二十天654.最大二叉树617.合并二叉树700.二叉搜索树中的搜索98.验证二叉搜索树

也就是二叉树的中序遍历,这样就能将整颗二叉树从左中右的顺序记录下来,值得掌握。本题采用了本方法:每种情况逐次判断,并分别合并递归。这样下去每次返回的地址要么是目标、要么是空。无疑是忘记了最大元素在边界的情况。700.二叉搜索树中的搜索。98.验证二叉搜索树。

2023-10-30 19:47:58 37 1

原创 代码随想录训练营第十八天513.找树左下角的值112. 路径总和113. 路径总和ii106.从中序与后序遍历序列构造二叉树105.从前序与中序遍历序列构造二叉树

本题最关键的就是要考虑清楚其中的数学关系:即根据中序数组的头节点元素作为根节点元素,并在后序数组中寻找根节点的值,同时将后序数组在根结点处跟为两段,一半为树左侧元素,一半为树右侧元素,并将中序数组同样的分为左右两枝的片段(大小与后序左右两枝等同)这样就实现了每一层的分割操作,再实现递归即可。同样是含有回溯的二叉树递归,同时判断路径,不同的是这次加入了数组,即需要将路径塞入数组中,并返回数组,这与之前的一道返回数组字符串的题类似。再来看返回值,递归函数什么时候需要返回值?113. 路径总和ii。

2023-10-29 10:17:34 34 1

原创 代码随想录训练营第十七天110.平衡二叉树257. 二叉树的所有路径404.左叶子之和

二叉树跟节点地址、自定义的向量path用来记录走过的节点,并通过每次递归出函数时pop掉下一层的节点,实现回溯,保存树节点上半枝,为其他通道的遍历做准备。这也对我产生的新的启发:不能光看递归三部曲,还应该仔细研究对于每一个节点可能出现的各种情况,分别判断出来,并给出在递归中的应对。本题将递归的返回参数应用的淋漓尽致,根据返回-1或者高度值判断是否是平衡二叉树,并实现了在历次迭代中将-1的值传递回来。每一层递归下来总的值就是所有左子叶的数值和了。257. 二叉树的所有路径。总体来说还是很难的。

2023-10-27 21:27:44 33 1

原创 代码随想录训练营第十六天104.二叉树的最大深度111.二叉树的最小深度222.完全二叉树的节点个数

一开始想的是跟最大深度差不多,我还特意补足了条件,也就是只有左右节点都是空的时候才能结束,但是越往下敲下去越觉得不对,之后就卡在逻辑上,怎么判断最小深度上了。答案是直接没有的,说明这都属于递归中root==NULL的情况,在指针递归到下一层就会自然触发,并累加数字为0,无需提前分类讨论,直接得出答案。还是对于指针的认识没有到位。还是递归的基本思想以及三部曲的应用,最大深度就是指一直递归下去直到空节点,这就是终止条件,参数就是根的指针,单层递归的逻辑就是分别计算下一层深度,并加上本层的厚度(1)

2023-10-26 15:27:15 29

原创 代码随想录第十五天层序遍历226.翻转二叉树101. 对称二叉树

这一段就因为顺序反过来了导致循环报错,要先将可能出现空指针的情况都考虑清楚才能进项接下来的判断。相比于灵活的递归方法,二叉树的层序遍历就相对有些麻烦但直接,在编写终止条件时,不仅需要谨慎还有对于逻辑的考量。直接定义队,将每一层的数据先塞入队中,这道题是相对典型的一道递归思想题目。并实现下一层的推进。

2023-10-25 23:13:47 74 1

原创 代码随想录训练营第十四天二叉树递归遍历

在这一整个函数中,将二叉树整个遍历一遍,并将数值塞入vec中,在这个过程中每过一个节点就尝试左右递归,对下一层先左后右(前序)的二叉树再分别调用该函数,并先填值,实现递归,直到判断出指针为空,本层结束,一层一层下来,实现对于整个二叉树按顺序(前序)放入数组中。写完了递归算法, 运行的时候,经常会遇到栈溢出的错误,就是没写终止条件或者终止条件写的不对,操作系统也是用一个栈的结构来保存每一层递归的信息,如果递归没有终止,操作系统的内存栈必然就会溢出。在这里也就会重复调用自己来实现递归的过程。

2023-10-24 11:13:24 22

空空如也

空空如也

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

TA关注的人

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