![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
零offer在手
努力找工作中...
展开
-
代码随想录算法训练营第四十一天| 343. 整数拆分, 96. 不同的二叉搜索树
今天这两道题太难了,看了视频也没看懂。是因为真的太难还是现在做的时候心不静哈哈。原创 2024-05-07 12:25:00 · 180 阅读 · 0 评论 -
代码随想录算法训练营第三十八天| 509. 斐波那契数,70. 爬楼梯 , 746. 使用最小花费爬楼梯
递归经典入门,不难。需要注意在初始化dp数组的时候注意的是。之前做过,跟上一题其实是差不多的。. 因为下标从0开始所以在遍历的时候要。,最后返回dp的最后一个值就可以。原创 2024-05-03 18:15:21 · 334 阅读 · 0 评论 -
代码随想录算法训练营第三十七天| 738.单调递增的数字
这种题做过一遍才有思路,第一次做直接看题解。原创 2024-05-03 17:28:20 · 137 阅读 · 0 评论 -
代码随想录算法训练营第三十六天| 435. 无重叠区间, 763. 划分字母区间, 56. 合并区间
理论基础 |力扣刷题总结| 动态规划入门,我更完了,你看完了吗?,贪心算法,依然是判断重叠区间 | LeetCode:435.无重叠区间,贪心算法,判断重叠区间问题 | LeetCode:452.用最少数量的箭引爆气球,帮你把KMP算法学个通透!(理论篇),贪心算法,不要两边一起贪,会顾此失彼 | LeetCode:406.根据身高重建队列,带你学透0-1背包问题!| 关于背包问题,你不清楚的地方,这里都讲了!有点难度,需要考虑的有点多,但是和今天的第一题其实也不是差很多。真的是太巧妙了,值得学习!原创 2024-04-26 12:57:26 · 851 阅读 · 0 评论 -
代码随想录算法训练营第三十五天| 860.柠檬水找零,406.根据身高重建队列,452. 用最少数量的箭引爆气球
贪心算法,两者兼顾很容易顾此失彼!LeetCode:135.分发糖果,贪心算法,合并区间有细节!LeetCode:56.合并区间,贪心算法,依然是判断重叠区间 | LeetCode:435.无重叠区间,从此再也不怕动态规划了,动态规划解题方法论大曝光!| 关于背包问题,你不清楚的地方,这里都讲了!| 动态规划经典问题 | 数据结构与算法,我更完了,你看完了吗?代码随想录PDF,代码随想录网站,代码随想录百度网盘,代码随想录知识星球,代码随想录八股文PDF,代码随想录刷题路线,代码随想录知识星球八股文。原创 2024-04-24 18:29:34 · 131 阅读 · 0 评论 -
代码随想录算法训练营第三十四天| 1005. K 次取反后最大化的数组和,134. 加油站, 135. 分发糖果
代码随想录PDF,代码随想录网站,代码随想录百度网盘,代码随想录知识星球,代码随想录八股文PDF,代码随想录刷题路线,代码随想录知识星球八股文。代码随想录PDF,代码随想录网站,代码随想录百度网盘,代码随想录知识星球,代码随想录八股文PDF,代码随想录刷题路线,代码随想录知识星球八股文。hard题目,思路很巧妙不是我这种人可以第一次想出来的。今天是写不动了,脑细胞死亡太多,下次再来886。. 有点小难度,自己解释不明白,看carl哥的就行了。. 一度怀疑这题有什么意义哈哈哈。原创 2024-04-22 17:07:46 · 86 阅读 · 0 评论 -
代码随想录算法训练营第三十二天| 122. 买卖股票的最佳时机 II,55. 跳跃游戏,45. 跳跃游戏 II
1.理想是每次都跳最远看看几次可以到,但是这个在实际中并不是跳到最远就是最少的跳跃。[2,3,1,1,1,4] 第一次最远的话到1,然后再到1...,但是如果第二次直接到3就直接到终点了。刚看到题目没什么思路,也有可能是是没理解题目。. 有点难度,看到懂过程有点懵逼。覆盖范围这个理解不行,下次回头再来看吧。1.当nusm[i]=3的时候代表你最大可以向后跳3步,但是你。2. 正确解法,不用考虑我每次到底需要几步,我。这里思路分解下,可以理解为我。有点考验思路,先理解下题意。,有点动态规划的意思。原创 2024-04-22 14:51:18 · 112 阅读 · 0 评论 -
代码随想录算法训练营第三十一天| 455.分发饼干,376. 摆动序列,53. 最大子序和
53. 这题思路有点混乱,先是觉得像是之前做的回溯剪枝,又觉得像是滑动窗口。自己给自己整乱了,看了下题解其实思路跟我想的差不多。但是,需要考虑的就是如何。. 这道题目呢也不能算难吧,刚开始我的思路是直接算出差值然后原地修改数组的值,但是这样好像很难控制越界问题。第三十天全是Hard的题目,可以跳过,直接来到31天。这题还是比较简单的,感觉有点双指针的意思,需要。,这道题目建议自己先思考写着再看题解。实是更加简单直观一点。原创 2024-04-20 15:08:44 · 152 阅读 · 0 评论 -
代码随想录算法训练营第二十九天| 491. 非递减子序列,46.全排列,47. 全排列 II
这种情况通常出现在我们已经回溯到了某个递归层级的开始,并且前一个元素刚刚被移除(未使用)。如果我们不跳过当前元素,就会再次生成一个与之前相同的排列,因为排序后这两个相同的元素是连续的,所以必须按照它们在数组中的顺序来决定使用,以防止重复。但是已经取过的值(自身)在下一次递归中不能再取了。这就是这个题目的精髓,代码还是相似的。),意味着我们正在尝试重新开始一个已经尝试过的排列路径。开始尝试生成排列,即使它与先前选取的第一个。因此,我们跳过这个选择,避免重复生成。数组回复状态,尝试其他可能。原创 2024-04-17 14:10:28 · 355 阅读 · 0 评论 -
代码随想录算法训练营第二十八天| 93. 复原 IP 地址, 78.子集,90.子集II
这题有点难度,虽然跟昨天有一题差不多,但是感觉思路还是很难想到太多细节了,单单就判断substring有没有效就很烦人了哈哈。主要的思路,和注意的地方都写在了代码里面。. 这题跟上面那题几乎一摸一样,就是需要去重。去重我们之前也做过就是。这题算是简单,跟一次做回溯的题目差不多,还是好理解的。,对比上面的代码其实就多了一行代码就行。原创 2024-04-16 18:02:28 · 157 阅读 · 0 评论 -
代码随想录算法训练营第二十七天| 39. 组合总和, 40.组合总和II, 131.分割回文串
这题比较难,但是其实还是属于组合的问题,只不过就是最后有多少种组合,然后是回文的组合添加到结果集中就OK。去重的过程首先检查是不是第一次循环i>startIndex然后再检查当前元素是不是和前面的元素一样的,满足这两个条件直接continue;等于或超过字符串的长度时,意味着所有字符都已经被检查并用于尝试构建回文切割方案。. 做了前面两天题目的朋友,应该觉得这题不是很难,题目说元素可以重复,跟上一题的代码几乎一摸一样,就是多个去重,参数用于指示当前处理的字符的起始位置。了,然后每次sum的值要。原创 2024-04-15 14:49:15 · 310 阅读 · 0 评论 -
代码随想录算法训练营第二十五天| 216.组合总和III,17.电话号码的字母组合
这一题跟昨天的题目差不多,这里就不多解释了,理解了昨天的题目这个题目就差不多了,好像确实都是模版来的。这道题目第一次做还是会没思路的,首先要模拟出数字到字符的映射,然后巧妙的应用数组(原创 2024-04-13 23:48:16 · 103 阅读 · 0 评论 -
代码随想录算法训练营第二十四天| 回溯算法part01, 77. 组合
【代码】代码随想录算法训练营第二十四天| 回溯算法part01, 77. 组合。原创 2024-04-12 17:17:29 · 146 阅读 · 0 评论 -
代码随想录算法训练营第二十三天| 669. 修剪二叉搜索树 ,108.将有序数组转换为二叉搜索树, 538.把二叉搜索树转换为累加树
二叉树算是结束了,前面还好,后面直接给我做崩溃了,慢慢来吧二刷再加油,先跟着进度走。. 这题跟之前的,给两个数组构建二叉树简单点,没那么复杂。在BST树中我们左中右就是一个有序的数组,然后我们。. 比之前的添加和删除都难,我直接先跳过哈。根据题目的要求我们就是需要进行一个。原创 2024-04-12 14:40:23 · 127 阅读 · 0 评论 -
代码随想录算法训练营第二十二天| 235. 二叉搜索树的最近公共祖先 , 701.二叉搜索树中的插入操作, 450.删除二叉搜索树中的节点
235. 这题很精髓,很好的用到了二叉搜索树的特性。递归和迭代方法都可以做,之时迭代的方法好理解点。最需要注意的就是q.val<root.val <p.val 就像这种情况的话当前的root就是最近公共祖先了,不用再去往下找了。迭代:class Solution { public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { while (true) {原创 2024-04-12 14:11:12 · 120 阅读 · 0 评论 -
代码随想录算法训练营第二十天| 654.最大二叉树,617.合并二叉树,700.二叉搜索树中的搜索,98.验证二叉搜索树
这题嘛就更加简单了,普通的二叉树递归也可以,但是这里可以优化,因为是二叉搜树树,不知道的可以先去了解下这个树的特征!以上的所有题目马上都要回来重新做,今天真是没怎么思考,有点应付过去了,太累了。这个不难,但是别看代码少,理解起来要我命,下次写还是不会哈哈哈哈。这题的代码是不是很熟悉,思路是一样的就是有些坑,建议看下题解。这几题都没自己动脑花时间去写,这二叉树快要给我做崩了。. 构造二叉树,比前面那一篇简单点。原创 2024-04-08 17:10:47 · 110 阅读 · 0 评论 -
代码随想录算法训练营第十八天| 513.找树左下角的值,112. 路径总和,113. 路径总和 II,106.从中序与后序遍历序列构造二叉树, 105.从前序与中序遍历序列构造二叉树。
这道题目应该跟上面差不多,但是上面那题我没自己动手写,这题的话先放在这,下次二刷回来补上这两题!看了carl大佬的视频讲解感觉理解了,但是你让我自己写代码还是写不出来,累了先复制粘帖吧,二刷有时间再来看,之前。. 这题又是涉及回溯,跟之前的题目好像。虽然不是特别理解递归,但是好像已经找到这种题目的套路和奥秘了哈哈哈。. 这一题跟昨天的"404.左叶子之和" 有点像,有两种方法可以做,(这里有点不太理解,前中后遍历都行),反之递归就这么不懂的写下来了。:层次遍历比较简单只要遍历到最后一层的第一个值就行了,原创 2024-04-06 13:09:14 · 243 阅读 · 1 评论 -
代码随想录算法训练营第十七天| 110. 平衡二叉树, 257. 二叉树的所有路径,404.左叶子之和
在遍历的时候要加个判断条件如果当前有节点的高度差超过1了则直接返回-1;. 经过昨天的苦难磨砺,今天似乎有点进步。,而不是只比较left和right的高度差!404. 好晕,做不明白,给我做暴躁😡了真的烦。LeetCode:257. 二叉树的所有路径。原创 2024-04-05 15:23:28 · 210 阅读 · 1 评论 -
代码随想录算法训练营第十六天| 104.二叉树的最大深度 (优先掌握递归),111.二叉树的最小深度(优先掌握递归), 222.完全二叉树的节点个数(优先掌握递归)
最大深度,不是前序就是后序了,但是我们之前的遍历都是遍历整颗树,然后获取节点就行了。这里的话,需要还是一样的遍历,只不过需要对。做了这么多遍的题目,下次遇到还是不会,这道题如何才能解决呢。每次看递归都是似懂非懂的太难受了。先总结这三题好像都不算难☹️,但是都没做出来不是这里错就是那里错,这题呢,算是简单如果用普通遍历的话。的特性有更好的写法,我没看感觉先把递归理解好吧!好难🤯,下面是大佬的代码直接拿过来了。你让我遍历我可以理解,但是每次。就搞的乱七八糟的,还得多看看。原创 2024-04-04 13:08:34 · 212 阅读 · 1 评论 -
代码随想录算法训练营第十五天| 102. 二叉树的层序遍历, 226.翻转二叉树 (优先掌握递归), 101. 对称二叉树 (优先掌握递归)
其实就OK,题目的代码不算难,难的是自己的有思路知道用什么方法,代码也就不是问题了。的方法,递归的方法感觉不太好理解,建议新手的话还是用队列先理解下。通过递归函数的返回值来判断两个子树的内侧节点和外侧节点是否相等。,感觉自己还是不能完全看懂递归怎么办啊家人们。层次遍历, 感觉还是常用的。递归就不用说了哈哈,思路呢要掌握只能用。原创 2024-04-03 16:48:10 · 105 阅读 · 1 评论 -
代码随想录算法训练营第十四天| 144. 二叉树的前序遍历(递归+迭代)
建议大家刚开始不要强行理解,多做几遍,多看点讲解才能理解。我自己做了好多遍,也不敢说理解了递归哈哈哈。这里的3道题目其实就是一道题目,掌握递归遍历就行了。具体的建议也可以去b站找大佬的视频讲解慢慢理解吧!,你让我讲这里我也很菜实在讲不出什么,还请各位道友自行领悟啊。二叉树的重要性就不用我多说了吧兄弟们,只是这个递归。怎么说呢可以作为了解吧反正。这里还是遍历二叉树,只不过不是递归。终于来到二叉树了我永远的痛,原创 2024-04-02 14:31:11 · 143 阅读 · 1 评论 -
代码随想录算法训练营第十三天| 239. 滑动窗口最大值,347.前 K 个高频元素.
的不熟悉,这个数据结构很少用到,一时间没想起来,想起来估计也忘记怎么用了哈哈。看了题解之后感觉还是蛮简单的,只要掌握优先队列就行了,算是复习了下数据结构和算法了。属于hard的题目,目前能力不够哈哈,直接看了carl哥的视频讲解,大差不差的理解了。总结: 上面这两道题都是说一刷了解思路,题目还是蛮有意思的,希望二刷再好好理解下吧。这一题呢,其实不算难,但是我没做出来。原创 2024-04-01 16:12:05 · 213 阅读 · 0 评论 -
代码随想录算法训练营第十一天| 20. 有效的括号,1047. 删除字符串中的所有相邻重复项,150. 逆波兰表达式求值。
(这里我刚开始用了一个sum想着通过sum去累计最后的值,然后直接返回sum,但是这样是不行的,这个大家可以去想想为什么不行哈哈)说来惭愧,做过好几遍的题目今天再次来做提交了3次才过,细节的处理总是粗心大意啊。这个呢多说无益的,还是。是什么和怎么运算的。了解完之后,就会发现还是一目了然要用。在把结果转换为字符串的时候需要注意下。这一题似乎比上一题还要简单,只用一个栈就行。好像还有双指针的做法,二刷的时候再来看下。这道题目也不算难,就是首先要了解。原创 2024-03-30 16:24:19 · 154 阅读 · 1 评论 -
代码随想录算法训练营第十天| 232.用栈实现队列,225. 用队列实现栈。
做这两个题目之前需要了解栈和队列的数据结构,先进后出和先进后出。相比做到这儿的朋友都是有一定的数据结构基础的,没有的话建议学学再来做吧。这题我之前做过有些印象因此做起来很顺手,题目说的很直接来要求用两个栈模拟队列。思路:搞出两个栈(stack1,stack2),(这里的具体细节我局=觉得没必要多讲,最好的理解方法就是画图,根据代码自己画图理解才行)总结:这两道题目我都懒得写解释,主要真不是我懒(假的,因为。225. 这题目也不算难,用两个队列。(虽然但是题目说两个队列,我直接也可以一个。原创 2024-03-29 21:17:39 · 166 阅读 · 1 评论 -
代码随想录算法训练营第九天| 28. 实现 strStr(),459.重复的子字符串,字符串总结,双指针回顾。
因为大家 算法能力还没到,细扣 很难的算法,会把自己绕进去,就算别人给解释,只会激发出更多的问题和疑惑。所以大家先了解大体过程,知道这么回事, 等自己有 算法基础和思维了,在看多看几遍视频,慢慢就理解了。因为KMP算法很难,大家别奢求 一次就把kmp全理解了,大家刚学KMP一定会有各种各样的疑问,先留着,别期望立刻啃明白,第一遍了解大概思路,二刷的时候,再看KMP会 好懂很多。今天就是让看了看总结,KMP和本题,一刷的时候 ,可以适当放过,了解怎么回事就行,二刷的时候再来硬啃。比较简单,大家读一遍就行。原创 2024-03-28 13:18:12 · 215 阅读 · 0 评论 -
代码随想录算法训练营第八天| 344.反转字符串 ,541.反转字符串II,卡码网:54.替换数字 ,151.翻转字符串里的单词,卡码网:55.右旋转字符串。
应该就是,每隔2k个字符,对前k个字符进行反转,就这么理解就行了。这题就很简单了,前面我们用了很多次的stringbuilder,然后主要知道isDigit()这个方法就行了,easy easy 洒洒水啦。去解决,我是懒得再去看他们的解法了,自己能写出来就行了,累了今天写了5题了。(再次吐槽第二题,真的恶心,看不懂题目,浪费我太久时间,头痛。第一眼没思路的同学建议关注我一波,然后从我的第一篇文章看起哈哈哈开玩笑。还是会经常用到了,也可以双指针但是太复杂了还是老老实实,简单点的好哈哈。这题也简单的,直接用。原创 2024-03-27 17:30:05 · 238 阅读 · 0 评论 -
代码随想录算法训练营第七天| 454.四数相加II,383. 赎金信,15. 三数之和,18. 四数之和。
这道题目跟上面的代码几乎一摸一样就是在while循环外又多了一层for环外,两个for循环一个while循环,您直接循环死我得了😭。我还是写认真的理解好上面的那题然后就可以闭着眼这题了哈哈哈(假的。. 做的迷迷糊糊的这道题目,好晕。,或者直接看我之前的文章也有写过这道题目。这次我上来又是想的直接用map,但是看了提示。,很常见的思维了算是,不知道的可以去看上一篇 两数之和 用哈希表去感受下。这里跟242. 的思路一样的就不多说了,直接看代码注释。这里不是用的相加,用的是。. 又是抄袭别人思路的一天,原创 2024-03-26 16:21:07 · 346 阅读 · 0 评论 -
代码随想录算法训练营第六天| 242.有效的字母异位词, 349. 两个数组的交集, 202. 快乐数, 1. 两数之和。
使用两个for循环,第一个循环通过ASCII找到字符在数组中的位置,把其中一个字符串的字符出现次数通过 ++ 统计在数组中。第二个for循环同理,但是这里我们是开始比较了所以是用 -- ,如果最后数组中的值都是0则说明所有的字符出现的次数是一致的,反之则不是。的值,这里containsKey()可以直接放在刚开始的循环里就行,不用put完所有的值之后再去写一个for循环,因为。具体的解释,在代码注释里面简洁明了,这里就不赘述了。,会的人就会了,不会的人也就不会了,希望这次做完之后可以记住!原创 2024-03-25 14:17:17 · 287 阅读 · 0 评论 -
代码随想录算法训练营第四天| 24. 两两交换链表中的节点, 19.删除链表的倒数第N个节点,面试题 02.07. 链表相交 , 142.环形链表II
这道题目呢,首先初始化一个dummyNode用来返回最后的链表,然后需要一个cur指针用来遍历链表或者说更新下一次需要更新的两个节点的位置。根据cur的位置来确定后面两个节点的位置然后互换,第一个节点first(cur.next), 第二个节点second(cur.next.next);这里需要注意的是题目说。主要靠一个数学的推导思维,我就不做解释了也不明白,大家直接看carl哥的就行了哈哈哈(走到链表结尾fast==null的时候,slow就到了需要删除节点的前一个位置了,此时进行删除操作就ok了。原创 2024-03-23 18:20:54 · 254 阅读 · 0 评论 -
代码随想录算法训练营第三天| 203.移除链表元素, 707.设计链表,206.反转链表
这道题目想出来双指针后应该就不难了,唯一需要注意的就是当你把当前的这个node的指针指向变动时,你需要确保还能找到这个node指针没变动前的指向的node是哪一个这样你才能继续遍历下去(用一个快慢指针来遍历整个链表找到需要删除的元素的时候slow指针的next就直接跳到fast指针的next,这个应该就不用多说了,不理解的话可能得去补补链表的数据结构了!的用场就来了,虚拟头节点可以当作是我们整个链表的入口所在地,因为它永远不会被删除!. 这是一道极其经典的题目了算是,考验基本的对链表的理解。原创 2024-03-22 12:22:21 · 158 阅读 · 0 评论 -
代码随想录算法训练营第二天| 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II,总结
说明while循环的条件一直没被满足,也就是sum>=target的这个条件一直没达到,这个情况下就要return 0,反之则return (right - left) + 1 ,下标运算最后结果要+1才行。. 这题属于模拟题目,不算是算法题目,但是朕实在是学不明白,尔等且先退下,等我下次再来看。(这里贴一段代码先,不是carl的,leetcode大神的感觉他这个更好理解点似乎),原数组是有序的但是因为有负数的存在,平方过后可能会变大,因此用双向指针(最大值肯定是两端的其中一个)。原创 2024-03-21 18:25:16 · 171 阅读 · 0 评论 -
代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素。
刚开始想的是双向指针,然后需要考虑当left和right同时都为val的情况应该怎么处理。有两种不同的处理方法,第一种,就是先用一个while循环将right移到从右数第一个值不为val的位置,然后再进行位置的交换。第二种,就是兼容了right指针指向的值与val相等的情况(更加简单一点)。我个人的话也算是写过几遍,不用动脑子就按照记忆中的模版写出来个大概,然后再去理解算法进一步的修改代码。最最最简单的方法还是使用快慢指针,刚开始没想到,看了题解,卧槽,真是简洁啊,真妙。原创 2024-03-21 15:13:30 · 119 阅读 · 0 评论