自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录算法训练营第五十九天

想想其实坚持下来也不是很难,不过有很多题做一遍应该是记忆没那么深,anyway,要继续往换工作的方向走啊。今天第二题也扶完了,有个印象。503.下一个更大元素II。

2024-05-20 22:53:19 97

原创 代码随想录算法训练营第五十七天

不算今天就剩两天题了,有点感慨啊,感觉坚持60天,似乎也没太多提升。不清楚之后能不能坚持下去,下周应该又要出差啦,不能裸辞不能裸辞不能裸辞!739. 每日温度这样不行,因为可能st.top()已经是空了。496.下一个更大元素 I。

2024-05-19 14:46:50 79

原创 代码随想录算法训练营第五十六天

昨天去听棱镜乐队了,真是顶级浪漫啊,然后就没做题hhh,今天先给动态规划结个尾,看看要不要做单调栈。516.最长回文子序列。

2024-05-18 21:49:12 99

原创 代码随想录算法训练营第五十五天

昨天最后想到的方法,今天也派上了一定的作用,先把例子画图去想。

2024-05-17 00:31:40 178

原创 代码随想录算法训练营第五十四天

对10^9 + 7取模,所以还是挺大的,比2^8大,所以不能vector<int>总感觉在不等于的时候,应该是dp[i][j] = dp[i-1][j-2];第二题我看了很久还是没太明白,我发现理解动规有一点点吃力了啊,努努力。同时我发现这种dp[i][j]可以画几行去理解。找一下加的规律,会好写。整了个vector<long long>这里其实按他那个图会更好理解一点。115.不同的子序列。还有两天可以去听棱镜!

2024-05-15 23:20:07 142 1

原创 代码随想录算法训练营第五十三天

儿子似乎有点斜颈,还好不是很大的病,儿子也开始面对人生的苦难啦。其实就是和1143一模一样,只要顺序相同,就可以实现不相交。今天同事说他要离职啦,还挣挺多的,我也慢慢努力吧!一维数组的思路很难其实,暂且放一下,先做下一题。1143.最长公共子序列。1035.不相交的线。

2024-05-14 22:19:56 218

原创 代码随想录算法训练营第五十二天

其实是两个for循环的问题,没考虑两个for循环,只想到了+1。思路有一丝丝的不太对,ij放for外面的写法有问题。今日效率低下,努力把题做完。拓展大致能看懂,二维的容易理解一点。第一题做出来后,这题就比较好想了。一维的通过研究输出内容,大致了解,674. 最长连续递增序列。718. 最长重复子数组。300.最长递增子序列。

2024-05-14 00:25:01 170

原创 代码随想录算法训练营第五十天

十分后悔昨天没有把题写完再去玩,今天要受苦啦。

2024-05-12 13:29:08 163

原创 代码随想录算法训练营第四十九天

这局没有省0数组成功,不清楚哪里的问题,不过感觉这问题调试应该不会有太大的问题,就跳过吧还是。vector这里卡了一下,不过这四个的用法大概能理解。今天回来还是很晚,而且没在单位做题。123.买卖股票的最佳时机III。188.买卖股票的最佳时机IV。

2024-05-11 00:43:44 95

原创 代码随想录算法训练营第四十八天

今天题还行,但是我加班了,很难受,搞完了,抓紧玩一会歇。用滚动数组也可以想到,直接就整出来啦。122.买卖股票的最佳时机II。121. 买卖股票的最佳时机。

2024-05-09 23:37:18 102

原创 代码随想录算法训练营第四十七天

这题我想的有点过于简单,导致看起来很乱,所以还是要先把打家劫舍1的搭建好,然后找起始结束,这样不乱,max(val1,val2)这种。我感觉我这个比随想录那个更清晰呢。今天上班只完成了一道题,被同事发现了,gg,果断溜回来做剩下的两道,加油吧xd,离新的工作越来越近了。打家劫舍1没有太多好说的,就是能搞定[i-2]和[i-1]取最大即可。通过vector<int>dp(2,0),分成用当前结点和不用当前节点。213.打家劫舍II。337.打家劫舍III。不用当前节点的情况,

2024-05-09 00:22:28 214

原创 代码随想录算法训练营第四十六天

昨天媳妇发烧啦,和他一顿激烈讨论该不该母乳,目前一切良好,题目在单位做完了,但是有个地方想在家里测试一下。139.单词拆分要注意先背包后物品,并且物品是变化的,不是直接用wordDict这里想试个东西,总感觉s.substr(j-i)的长度不太对。这里真的用的好巧啊,例子用applepenapple。5apple8pen13apple想说的就是,正好dp[x]中的x,是下一个起始位,所以没有那么多的±1来对齐的问题。最后直接看dp[s.size()]即可。

2024-05-08 22:01:22 294

原创 代码随想录算法训练营第四十五天

今天第一天恢复上班,并且在班上把三道题都做啦。想法都写在备注里啦,今日十分迅速+舒服。70. 爬楼梯 (进阶)

2024-05-06 21:49:12 84

原创 代码随想录算法训练营第四十四天

因为存在不同顺序算不同的方法,所以for循环的内外循环需要变更,先遍历空间,再遍历物品。否则物品是有先后顺序的。01背包:物品在只能用一次,所以用背包空间去减当前物品的重量,然后去看是否需要用这个物品。sad的一天,明天开始上班,而且娃还行,媳妇儿状态不稳定,太难了也!随想录:这个递推公式大家应该不陌生了,我在讲解01背包题目的时候在这篇。完全背包:用当前物品的重量去填满背包空间,然后用不同的物品去放。518. 零钱兑换 II。377. 组合总和 Ⅳ。

2024-05-05 19:46:12 296

原创 代码随想录算法训练营第四十三天

思路主要是分成两个差不多大的两堆,所以需要用尽可能一半去减另一半即可。思路很重要啊,第一次确实想不明白。没有深挖为什么一定是从后向前遍历,不过感觉和上一题相似,都是通过前面的内容为基础,加到后面的。所以我们要求的是 x - (sum - x) = target。还一天就上班啦,陪产假结束,坚持坚持!假设加法的总和为x,那么减法对应的总和就是sum - x。一维表目前是理解随想录的思想,不过还没默写过。这步在二维表里异常关键,相当于保证能把方法叠加起来。还是没有完成今天的工作,我歇一歇,明天继续。

2024-05-05 18:49:19 305

原创 代码随想录算法训练营第四十二天

一维需要从后往前整,浅试了一下,然后发现背包要从0开始,因为没有初始化i = 0的情况。随想录和我做的差不多,我就不贴上来了,欠的债还了,还有今天的没做!思路看了一遍,默写一下哈。甚至看了两遍,但是还没开始搞。力扣啦,能少整点东西。他的思路是用背包,重量和价值相同。有点问题,具体看备注吧,然后就是把验证代码也放上来了。我家娃可太好看了,有点担心月嫂走了没法照顾娃。明天没有新的题,所以我今天开个头吧。416. 分割等和子集。随想录的写法学习一下。

2024-05-04 20:31:20 301

原创 代码随想录算法训练营第四十一天

用代码随想录的更好一点,主要的思想其实是j * dp[i-j]这里,然后就是一定会有j * (i-j)两个数的可能性,j * dp[i-j]实际上更偏向于两个及以上的情况,会忽略一些只有两个数的情况,比如4就过不去,因为dp[2] = 1,2*dp[2]实际上是2*1*1。昨天是摸鱼的一天,不过把电脑换了个位置,今天努力完成两天的任务,就可以玩啦!也可以理解是i个不同元素节点组成的二叉搜索树的个数为dp[i] ,都是一样的。dp[i] : 1到i为节点组成的二叉搜索树的个数为dp[i]。

2024-04-30 19:38:44 219

原创 代码随想录算法训练营第三十九天

数论法有点东西,像高中数学题了,在这m + n - 2 步中,一定有 m - 1 步是要向下走的,不用管什么时候向下走。直接用代码随想录的解释了,这高中知识,我已经还给老师了,如果需要我再去找老师要哈。看随想录解析方法发现,似乎数组都用大了一号,不过我觉得这样看起来更好看一点,而且还有一维数组的方法。行吧,我这个for循环用的有点蠢了,看一下随想录,理解即可。一维的理论其实就是一直记录最下面那一行的值(63. 不同路径 II。打印调试后可以解决。

2024-04-28 23:36:41 76

原创 代码随想录算法训练营第三十八天

又又又欠两天债,不过回家了,一切可以按部就班,明天慢慢补吧,今天先做一课的内容。然后就是如果一次可以上m个阶梯的话应该怎么做,先把伪代码放上来。其实就是斐波那契数,不过需要理解一下过程。还好还好,动态规划第一天不太难。746. 使用最小花费爬楼梯。509. 斐波那契数。

2024-04-28 22:17:26 393

原创 代码随想录算法训练营第三十七天

首先是转string和转int的方法,其次是这个思路,就是在后一位比前一位大的时候,让前一位降1,后一位及之后都变成9。这题难度一般感觉,主要是需要分类讨论的思想,画画图会好做。带娃真是麻了啊,耽误两天,努力赶回来!娃诞生啦,忙碌的一天,做题都不太能有精力,争取把题做完吧,总结可能先不看了。968.监控二叉树 (可以跳过)738.单调递增的数字。

2024-04-27 15:30:53 180

原创 代码随想录算法训练营第三十六天

随想录补充的思路有点难想,大概是和435无重叠区间这题有点相似,把每个字母的起始和结束,做排序,然后在做重合判断。忙碌的一天,到待产的病房啦,明天迎接儿子的诞生,尽量不耽误作业,21:11,加油!随想录的基本一致,然后就是这个+1,画一下过程就可以想到。这题思路和前面的很相似,感觉以左边界排序好想一点,然后就是取最大取最小。自己写的就很丑,因为不知道vector容器其他的玩法,看看随想录的。我按思路写的东西似乎过于繁琐,不过也算是憋出来了,写下来。,因为max_node在不断地增大,除非遇到的都是。

2024-04-24 22:42:04 282

原创 代码随想录算法训练营第三十五天

交换:iter_swap(persons.begin()+4,persons.begin()+5);插入:v.insert(v.begin()+n,1);//插入任意位置,n是想要插入的位置。有一个节省空间的方式,使用链表list来做,似乎用list不能直接在insert里面加。这题的思路是先排序,排序后逐个添加到新的vector里即可,插入顺序其实可以依照。最开始想用map,后来发现用数组就可以。删除:v.erase(v.begin()+2);//删除第三个位置的元素。406.根据身高重建队列。

2024-04-23 12:10:14 213

原创 代码随想录算法训练营第三十四天

加油加油!1005.K次取反后最大化的数组和其实反而没那么好想,没想到绝对值排序,没想到最后让绝对值最小的翻转,实际上还存在谁先结束的问题,比如是数组nums先全正,还是k先变0。134. 加油站这里算出index的方式需要学习。第二种方法,全局的贪心算法。

2024-04-22 14:07:27 150

原创 代码随想录算法训练营第三十二天

主要是难想,需要先找到每天的收益,然后每天收益求和就行。不清楚怎么才能干c++的活,先学吧。122.买卖股票的最佳时机II。贪心算法主打一个想不出来。

2024-04-20 14:14:02 170 2

原创 代码随想录算法训练营第三十一天

理解如果出现负数就要归0这件事,就完成一半,然后就是终止位置通过一直求最大来过滤。动态规划的方法很巧妙,不太能编出来,但是进阶有点过于抽象,先放过。附上动态的方法,先有个印象。

2024-04-19 19:12:55 109

原创 代码随想录算法训练营第三十天

行,确实难,我读题两遍了,还没读懂。这句的用法没有完全理解,官方释义是。这题还是很好理解,需要自己写一遍。332.重新安排行程(可跳过)不想改简历的一天,先做题吧。考虑上一行是不是合规就行。51. N皇后(可跳过)37. 解数独(可跳过)

2024-04-18 22:40:52 173

原创 代码随想录算法训练营第二十九天

关于疑问都写在里面了,目前最大的疑问是return似乎不需要。,我麻了,需要学一下return什么时候可以加什么时候不加了。相当于晚上22点20开始,看看需要多久。,所以path的终止条件都不太一样,这题要去类比。这题和491的区别在于,和代码随想录的答案比,

2024-04-17 23:28:22 137

原创 代码随想录算法训练营第二十八天

竟然快一半了,今天开始休陪产假,做题同时等娃出生啦~第一题卡的时间很久,大概用了1h,后面的明天做。需要学习string的insert用法。

2024-04-17 22:19:41 178

原创 代码随想录算法训练营第二十七天

动态规划的想法先收一收,不过感觉和A星那个表格有点像了,把难点记一下,这东西第一次真写不出来啊。首先used[]的写法要学会,其次是used[i - 1]的用法也很巧妙,要理解。调试用:打印vector<vector<string>>的方法。再上两天班休陪产假!递归稍微卡了一下,不过剪枝可以理解。substr的用法卡了很久。

2024-04-15 23:58:55 163

原创 代码随想录算法训练营第二十五天

昨日工作为两道题,看来回溯的前期应该可以慢一点。string的使用还是要多熟悉一点。216.组合总和III。17.电话号码的字母组合。

2024-04-14 19:18:13 68

原创 代码随想录算法训练营第二十四天

有剪枝要求,从n - (k - path.size()) + 1 以后,就会存在不必要的搜索。又要开始还债了,两天的债看看有多可怕。第一天的债竟然是一道题。

2024-04-14 18:26:19 88

原创 代码随想录算法训练营第二十三天

这里我少考虑了一点,就是假如左侧,超过最小值,不能完全接下左侧的右子节点,有分割的思想,有返回值,能写出递归的函数变量和返回值,差不多这题就能搞定。迭代法有点复杂,主要是过程要很清晰,左节点右节点依次堆进去,二叉树蒙混过关吧,一轮洗礼还是有点少。538.把二叉搜索树转换为累加树。108.将有序数组转换为二叉搜索树。可能这个右子节点还是在范围外。迭代法有中序模板,右中左即可。669. 修剪二叉搜索树。

2024-04-11 22:57:30 100

原创 代码随想录算法训练营第二十二天

中间部分有点难思考,其实就是cur->left要么接新节点,要么就是接cur->left。所有删除多余node的操作我都没干,就是想看一下不用是不是也可以,是可以,最好还是删除。这里有一个思路就是如果出现cur在[q,p]之间的话,说明他就是公共祖先了。简便方法完全没懂,他第二步NULL覆盖,右子树都没了?迭代法和上面那个比较像,就是多出一个父节点,抄下来抄下来。迭代法甚至看不下去,就不看了,脑子没了已经,搓一把炉石!不带返回值的方法还是有点难想,我先写下来。450.删除二叉搜索树中的节点。

2024-04-10 23:51:13 185

原创 代码随想录算法训练营第二十一天

前面使用中序(左中右)的时候,不需要考虑是不是存在left和right,第一步已经给排除掉了。在回溯的过程中,必然要遍历整棵二叉树,即使已经找到结果了,依然要把其他节点遍历完,可以说这里每一步,都是有难度的,都需要对二叉树,递归和回溯有一定的理解。思路里重要的是,超过countMax,就清除之前的内容即可。求最小公共祖先,需要从底向上遍历,那么二叉树,只能通过。今日的顺风车,让我送院里,行吧行吧。(即:回溯)实现从底向上的遍历方式。530.二叉搜索树的最小绝对差。需要学习前一个值的指针的写法。

2024-04-09 23:02:01 130

原创 代码随想录算法训练营第二十天

用脚标会容易,因为可以left > right的时候return nullptr;直接比较,取到最左面的节点,然后开始比较,这个最左面值的取值方法要记住。要考虑那个index是不是顶头,顶头的话,那一侧就是nullptr了。迭代法也很快乐,因为有序,不需要栈(深度)或者队列(广度),不需要回溯。17:15,开始今日工作,但愿能今天搞定,先做一题然后去吃饭。迭代法有点复杂,留着吧,目前决定理解即可。t1没有返t2,t2没有返t1。700.二叉搜索树中的搜索。结束结束,明日开始上班。98.验证二叉搜索树。

2024-04-08 21:08:36 174

原创 代码随想录算法训练营第十八天

这题首先因为需要遍历,所以不需要返回true or false,其次,标准答案的函数里把path放在了最外层,不需要让path进循环里(结果是一样的,操作上来看应该也是一样的)105题和106题基本一致,可以默写一遍试试看,这次用vector,不用脚标节省空间了。思路就是后序遍历的最后一个元素实际上是root,然后用root在中序做切割点。这种还是看着简单点,就是新建的东西多。从中序与后序遍历序列构造二叉树。今天一定要赶上进度,加油。

2024-04-08 16:59:08 170

原创 代码随想录算法训练营第十七天

然后就是递归法的退出条件和之前的不一样,是自己不nullptr,并且左右子节点都需要是nullptr。目前优先掌握递归,其他方法读一遍理解。我一个非专业出身的,我卷什么?已经4.7了,但是我还在补前天的作业,不过请假在家,补就完事了!257. 二叉树的所有路径 (优先掌握递归)看起来是深度问题,所以需要考虑前序(中左右)目前还是不考虑精简版,怕混淆一些重要信息。这个感觉像是遍历,所以用中左右,前序。这题要求高度差为1,所以用后序。先到这里,晚上继续,整第十八天。只能从下到上去查,所以只能。

2024-04-07 15:07:14 184

原创 代码随想录算法训练营第十六天

了解完全二叉树之后,要换种思路,但其实完全二叉树属于很极端的情况啊感觉,不太有普适性。回溯这个方法很牛,第一行很重要,这个决定result永远是最大的那个。重点在于当左子树空,右子树不空的时候,深度为1 + 右子树深度。右子树空,左子树不空的时候,深度为1 + 左子树深度。最后如果左右子树都不为空,返回左右子树深度最小值+1。111.二叉树的最小深度 (优先掌握递归)懈怠的一天,没有补十七天,先把十六天写完。104.二叉树的最大深度 (优先掌握递归)自己没做出来,有点过于巧妙,学:前序求深度,后序求高度。

2024-04-06 01:06:29 199

原创 代码随想录算法训练营第十五天

107:第二道注意左右,最后加翻转就行,reverse(result.begin(),result.end())。用栈其实也是同一种玩法,不过验证的顺序会不一样,果然栈是深度,队列是广度。2.5左右不空值也等,要对比左右的子节点(分外节点,内节点,两者均2.1~2.5均没问题)104:就是加入depth,然后++就行,size还是要有,因为这个是计算每一行用的。类似于统一法,相当于先做一个标记,说明处理完cur,然后让cur的子节点换位置。目前有一个问题是,我不知道怎么定义一个二叉树,也要一层层赋值吗?

2024-04-04 20:12:40 281

原创 代码随想录算法训练营第十四天

昨天聚餐,生生耽误一天,今天补一下昨天的内容。看了好几遍,不过还是不太会写,我先憋憋看。中序和后序思路一致,更换函数traverTreeNode顺序即可,放一起了就。这个的重点是NULL实际上用于没有处理的节点,一定是放在当前中间节点后面。思路是要放空指针,先按照例子写了一个后序的统一迭代。统一迭代 (基础不好的录友,迭代法可以放过)学没余力啊其实,还好放清明假了,还好后面有产假。迭代遍历 (基础不好的录友,迭代法可以放过)这里最重要的一点是,我们。先做中序,然后默写后序。思路:中右左,然后翻转。

2024-04-03 23:43:50 164

空空如也

空空如也

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

TA关注的人

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