- 博客(42)
- 收藏
- 关注
原创 最后一天。
Floyd 算法代码很简单,但真正理解起原理 还是需要花点功夫,大家在看代码的时候,会发现 Floyd 的代码很简单,甚至看一眼就背下来了,但我为了讲清楚原理,本篇还是花了大篇幅来讲解。一般 笔试或者 面试的时候,不会考察A*, 都是会结合具体业务场景问 A*算法,例如:地图导航,游戏开发 等等。其实基础版的A* 并不难,所以大家不要畏惧,理解本篇内容,甚至独立写出代码,大家可以做到,加油。A * 算法精讲 (A star算法)最各个最短路算法有个全面的了解。第十一章:图论part11。
2026-02-03 04:02:59
355
原创 hhhhb
第十一章:图论part10今天大家会感受到 Bellman_ford 算法系列在不同场景下的应用。建议依然是:一刷的时候,能理解 原理,知道Bellman_ford 解决不同场景的问题,照着代码随想录能抄下来代码就好,就算达标。二刷的时候自己尝试独立去写,三刷的时候 才能有一定深度理解各个最短路算法。Bellman_ford 队列优化算法(又名SPFA)
2026-02-01 20:42:44
75
原创 ddddddddd
第十一章:图论part07今天在学习prim 和 kruskal的同时,也要清楚这两个算法的区别所在。prim算法精讲kruskal算法精讲第十一章:图论part08。
2026-01-31 23:42:35
66
原创 9999999
经过上面的练习,大家可能会感觉 广搜不过如此,都刷出自信了,本题让大家初步感受一下,广搜难不在广搜本身,而是如何应用广搜。并查集理论基础很重要,明确并查集解决什么问题,代码如何写,对后面做并查集类题目很有帮助。深搜有细节,同样是深搜两种写法的区别,以及什么时候需要回溯操作呢?并查集应用类题目,关键是如何把题意转化成并查集问题。并查集裸题,学会理论基础后,本题直接可以直接刷过。简单题,避免大家惯性思维,建议大家先独立做题。第十一章:图论part04。第十一章:图论part05。第十一章:图论part06。
2026-01-30 22:15:53
55
原创 477777
注意广搜的两种写法,第一种写法为什么会超时, 如果自己做的录友,题目通过了,也要仔细看第一种写法的超时版本,弄清楚为什么会超时,因为你第一次 幸运 没那么想,第二次可就不一定了。大家可以在看图论理论基础的时候,很多内容 看不懂,例如也不知道 看完之后 还是不知道 邻接矩阵,邻接表怎么用, 别着急。需要点优化思路,建议先自己读题,相处一个解题方法,有时间就自己写代码,没时间就直接看题解,优化方式 会让你 耳目一新。注意深搜的两种写法,熟练掌握这两种写法 以及 知道区别在哪里,才算掌握的深搜。
2026-01-30 21:39:01
357
原创 66666666
建议是掌握 双指针 和单调栈,因为在面试中 写出单调栈可能 有点难度,但双指针思路更直接一些。在时间紧张的情况有,能写出双指针法也是不错的,然后可以和面试官在慢慢讨论如何优化。接雨水这道题目是 面试中特别高频的一道题,也是单调栈 应用的题目,大家好好做做。有了之前单调栈的铺垫,这道题目就不难了。第十章 单调栈part02。84.柱状图中最大的矩形。
2026-01-23 22:21:00
96
原创 55555555
大家可以读题,思考暴力的解法,然后在看单调栈的解法。就能感受出单调栈的巧妙。这道题和 739. 每日温度 几乎如出一辙,可以自己尝试做一做。本题和 739. 每日温度 看似差不多,其实 有加了点难度。今天正式开始单调栈,这是单调栈一篇扫盲题目,也是经典题。496.下一个更大元素 I。503.下一个更大元素II。第十章 单调栈part01。
2026-01-23 22:19:37
143
原创 333333
第九章 动态规划part12115.不同的子序列但相对于刚讲过 392.判断子序列,本题 就有难度了 ,感受一下本题和 392.判断子序列 的区别。
2026-01-22 19:39:17
268
原创 3333333
这道题目算是 编辑距离问题 的入门题目(毕竟这里只是涉及到减法),慢慢的,后面就要来解决真正的 编辑距离问题了。视频讲解:https://www.bilibili.com/video/BV19V4y1F7b5。动态规划:300.最长递增子序列 最大的区别在于“连续”。今天开始正式子序列系列,本题是比较简单的,感受感受一下子序列题目的思路。其实本题和 1143.最长公共子序列 是一模一样的,大家尝试自己做一做。体会一下本题和 718. 最长重复子数组 的区别。这道题我们用贪心做过,这次 再用dp来做一遍。
2026-01-22 19:35:56
352
原创 222222222
相对122.买卖股票的最佳时机II ,本题只需要在计算卖出操作的时候减去手续费就可以了,代码几乎是一样的,可以尝试自己做一做。视频讲解:https://www.bilibili.com/video/BV16M411U7XJ。视频讲解:https://www.bilibili.com/video/BV1rP4y1D7ku。本题加了一个冷冻期,状态就多了,有点难度,大家要把各个状态分清,思路才能清晰。本题是123.买卖股票的最佳时机III 的进阶版。第九章 动态规划part09。股票问题做一个总结吧。
2026-01-20 20:28:00
215
原创 11111111
视频讲解:https://www.bilibili.com/video/BV1Xe4y1u77q。视频讲解:https://www.bilibili.com/video/BV1D24y1Q7Ls。这道题一下子就难度上来了,关键在于至多买卖两次,这意味着可以买卖一次,可以买卖两次,也可以不买卖。视频讲解:https://www.bilibili.com/video/BV1WG411K7AR。股票问题是一个动态规划的系列问题,前两题并不难,第三题有难度。123.买卖股票的最佳时机III。213.打家劫舍II。
2026-01-20 20:24:05
219
原创 99999
力扣上没有纯粹的完全背包的题目,我在卡码网上制作了题目,大家可以去做一做,题目链接在下面的文章链接里。视频讲解:https://www.bilibili.com/video/BV14K411R7yv。本题 和 322. 零钱兑换 基本是一样的,大家先自己尝试做一做。这道题目 爬楼梯之前我们做过,这次再用完全背包的思路来分析一遍。如果求组合数就是外层for循环遍历物品,内层for遍历背包。如果求排列数就是外层for遍历背包,内层for循环遍历物品。后面的两道题目,都是完全背包的应用,做做感受一下。
2026-01-19 23:45:59
408
原创 77777
通过这道题目,大家先粗略了解, 01背包,完全背包,多重背包的区别,不过不用细扣,因为后面 对于 完全背包,多重背包 还有单独讲解。正式开始背包问题,背包问题还是挺难的,虽然大家可能看了很多背包问题模板代码,感觉挺简单,但基本理解的都不够深入。本题就和 昨天的 416. 分割等和子集 很像了,可以尝试先自己思考做一做。如果做过背包类问题,可以先看视频,很多内容,是自己平时没有考虑到位的。背包问题,力扣上没有原题,大家先了解理论,今天就安排一道具体题目。第九章 动态规划part04。416. 分割等和子集。
2026-01-19 23:38:45
403
原创 5555555555
视频讲解:https://www.bilibili.com/video/BV1Ld4y1k7c6。视频讲解:https://www.bilibili.com/video/BV1eK411o7QA。视频讲解:https://www.bilibili.com/video/BV1ve4y1x7Eu。今天开始逐渐有 dp的感觉了,前 两题 不同路径,可以好好研究一下,适合进阶。本题思路并不容易想,一刷建议可以跳过。如果学有余力,可以看视频理解一波。本题思路并不容易想,一刷建议可以跳过。63. 不同路径 II。
2026-01-18 20:57:50
196
原创 5555555
这道题目力扣改了题目描述了,现在的题目描述清晰很多,相当于明确说 第一步是不用花费的。如果没做过动态规划的题目,看我讲的理论基础,会有感觉 是不是简单题想复杂了?无论大家之前对动态规划学到什么程度,一定要先看 我讲的 动态规划理论基础。其实并没有,我讲的理论基础内容,在动规章节所有题目都有运用,所以很重要!很简单的动规入门题,但简单题使用来掌握方法论的,还是要有动规五部曲来分析。本题大家先自己想一想, 之后会发现,和 斐波那契数 有点关系。如果做过动态规划题目的录友,看我的理论基础 就会感同身受了。
2026-01-18 20:56:21
148
原创 4444444
可以看看贪心算法的总结,贪心本来就没啥规律,能写出个总结篇真的不容易了。本题也是重叠区间问题,如果昨天三道都吸收的话,本题就容易理解了。本题是贪心和二叉树的一个结合,比较难,一刷大家就跳过吧。968.监控二叉树 (可跳过)第八章 贪心算法 part05。738.单调递增的数字。
2026-01-17 21:18:01
217
原创 33333333
第八章 贪心算法 part04今天的三道题目,都算是 重叠区间 问题,大家可以好好感受一下。都属于那种看起来好复杂,但一看贪心解法,惊呼:这么巧妙!这种题还是属于那种,做过了也就会了,没做过就很难想出来。不过大家把如下三题做了之后,重叠区间 基本上差不多了452. 用最少数量的箭引爆气球435. 无重叠区间763.划分字母区间。
2026-01-17 21:16:44
159
原创 2222222
本题涉及到一个思想,就是想处理好一边再处理另一边,不要两边想着一起兼顾,后面还会有题目用到这个思路。本题有点难度,和分发糖果类似,不要两头兼顾,处理好一边再处理另一边。本题看上好像挺难,其实很简单,大家先尝试自己做一做。本题有点难度,不太好想,推荐大家熟悉一下方法二。第八章 贪心算法 part03。406.根据身高重建队列。
2026-01-16 22:45:48
190
原创 hhhhhh
本题同样不容易想出来。贪心就是这样,有的时候 会感觉简单到离谱,有时候,难的不行,主要是不容易想到。本题如果没接触过,很难想到,所以不要自己憋时间太久,读题思考一会,没思路立刻看题解。本题简单一些,估计大家不用想着贪心 ,用自己直觉也会有思路。本题大家可以先自己思考一下然后再看题解,会有惊喜!1005.K次取反后最大化的数组和。122.买卖股票的最佳时机II。第八章 贪心算法 part02。
2026-01-16 22:43:52
302
原创 hhhhh
基本贪心的题目 有两个极端,要不就是特简单,要不就是死活想不出来。,所以大家了解贪心算法 就了解它没有规律的本质就够了。学完贪心之后再去看动态规划,就会了解贪心和动规的区别。贪心算法其实就是没有什么规律可言。不用花心思去研究其规律,没有思路就立刻看题解。
2026-01-15 21:36:22
313
原创 qqqqq
题目链接/文章讲解:https://programmercarl.com/0093.%E5%A4%8D%E5%8E%9FIP%E5%9C%B0%E5%9D%80.html。题目链接/文章讲解:https://programmercarl.com/0090.%E5%AD%90%E9%9B%86II.html。大家之前做了 40.组合总和II 和 78.子集 ,本题就是这两道题目的结合,建议自己独立做一做,本题涉及的知识,之前都讲过,没有新内容。子集问题,就是收集树形结构中,每一个节点的结果。
2026-01-14 22:03:22
259
原创 。。。。。。
注意题目中给我们 集合是有重复元素的,那么求出来的 组合有可能重复,但题目要求不能有重复组合。本题是 集合里元素可以用无数次,那么和组合问题的差别 其实仅在于 startIndex上的控制。,大家先看视频来理解 分割问题,明天还会有一道分割问题,先打打基础。本题开始涉及到一个问题了:去重。
2026-01-14 22:01:46
161
原创 ......
其实在讲解二叉树的时候,就给大家介绍过回溯,这次正式开启回溯算法,大家可以先看视频,对回溯算法有一个整体的了解。对着 在 回溯算法理论基础 给出的 代码模板,来做本题组合问题,大家就会发现 写回溯算法套路。在回溯算法解决实际问题的过程中,大家会有各种疑问,先看视频介绍,基本可以解决大家的疑惑。本题关于剪枝操作是大家要理解的重点,因为后面很多回溯算法解决的题目,都是这个剪枝套路。本题大家刚开始做会有点难度,先自己思考20min,没思路就直接看题解。如果把 组合问题理解了,本题就容易一些了。
2026-01-13 21:13:32
241
原创 18二叉树8
第六章 二叉树part08669. 修剪二叉搜索树这道题目比较难,比 添加增加和删除节点难的多,建议先看视频理解。题目链接/文章讲解:视频讲解:108.将有序数组转换为二叉搜索树本题就简单一些,可以尝试先自己做做。538.把二叉搜索树转换为累加树本题也不难,在 求二叉搜索树的最小绝对差 和 众数 那两道题目 都讲过了 双指针法,思路是一样的。
2026-01-13 21:08:00
304
原创 17二叉树7
题目链接/文章讲解:https://programmercarl.com/0235.%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91%E7%9A%84%E6%9C%80%E8%BF%91%E5%85%AC%E5%85%B1%E7%A5%96%E5%85%88.html。本题比想象中的简单,大家可以先自己想一想应该怎么做,然后看视频讲解,就发现 本题为什么比较简单了。相对于 二叉树的最近公共祖先 本题就简单一些了,因为 可以利用二叉搜索树的特性。
2026-01-12 21:24:27
370
原创 15二叉树5
题目链接/文章讲解: https://programmercarl.com/0700.%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91%E4%B8%AD%E7%9A%84%E6%90%9C%E7%B4%A2.html。又是构造二叉树,昨天大家刚刚做完 中序后序确定二叉树,今天做这个 应该会容易一些, 先看视频,好好体会一下 为什么构造二叉树都是 前序遍历。这次是一起操作两个二叉树了, 估计大家也没一起操作过两个二叉树,也不知道该如何一起操作,可以看视频先理解一下。
2026-01-11 20:52:17
360
原创 14二叉树4
题目链接/文章讲解/视频讲解:https://programmercarl.com/0106.%E4%BB%8E%E4%B8%AD%E5%BA%8F%E4%B8%8E%E5%90%8E%E5%BA%8F%E9%81%8D%E5%8E%86%E5%BA%8F%E5%88%97%E6%9E%84%E9%80%A0%E4%BA%8C%E5%8F%89%E6%A0%91.html。106.从中序与后序遍历序列构造二叉树,105.从前序与中序遍历序列构造二叉树 一起做,思路一样的。从中序与后序遍历序列构造二叉树。
2026-01-11 20:49:07
249
原创 8字符串2
题目链接/文章讲解/视频讲解:https://programmercarl.com/0151.%E7%BF%BB%E8%BD%AC%E5%AD%97%E7%AC%A6%E4%B8%B2%E9%87%8C%E7%9A%84%E5%8D%95%E8%AF%8D.html。因为KMP算法很难,大家别奢求 一次就把kmp全理解了,大家刚学KMP一定会有各种各样的疑问,先留着,别期望立刻啃明白,第一遍了解大概思路,二刷的时候,再看KMP会 好懂很多。建议:题解中的解法如果没接触过的话,应该会想不到。
2026-01-10 21:16:34
296
原创 13二叉树3
题目链接/文章讲解/视频讲解:https://programmercarl.com/0222.%E5%AE%8C%E5%85%A8%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E8%8A%82%E7%82%B9%E4%B8%AA%E6%95%B0.html。这是大家第一次接触到回溯的过程, 我在视频里重点讲解了 本题为什么要有回溯,已经回溯的过程。迭代法,大家可以直接过,二刷有精力的时候 再去掌握迭代法。再一次涉及到,什么是高度,什么是深度,可以巩固一下。
2026-01-09 20:47:33
200
原创 12二叉树2
题目链接/文章讲解/视频讲解: https://programmercarl.com/0104.%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E6%9C%80%E5%A4%A7%E6%B7%B1%E5%BA%A6.html。题目链接/文章讲解/视频讲解:https://programmercarl.com/0111.%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E6%9C%80%E5%B0%8F%E6%B7%B1%E5%BA%A6.html。
2026-01-09 20:12:12
170
原创 第6天 哈希表2
→ 先把 nums[k] 变成 long ,然后 nums[i] 自动变 long , nums[left] 自动变 long , nums[right] 自动变 long(long) 里的括号是 C++ 的“强制类型转换标记”,作用是明确告诉编译器:“我要把后面的东西,强行改成 long 类型”——就像给物品贴“指定标签”,必须用括号把类型框起来,编译器才认!- magazine[i] - 'a' :把字母转成“0~25”的数字(比如“a”-“a”=0,“b”-“a”=1,“c”-“a”=2,…
2026-01-08 21:49:52
938
原创 11二叉数1
看完本篇可以一口气刷十道题,试一试, 层序遍历并不难,大家可以很快刷了十道题。这是统一迭代法的写法, 如果学有余力,可以掌握一下。二叉树的三种递归遍历掌握其规律后,其实很简单。迭代遍历 (基础不好的录友,迭代法可以放过)统一迭代 (基础不好的录友,迭代法可以放过)递归遍历 (必须掌握)
2025-12-14 23:37:33
197
原创 9栈与队列1
push数据的时候,只要数据放进输入栈就好,但在pop的时候,操作就复杂一些,输出栈如果为空,就把进栈数据全部导入进来(注意是全部导入),再从出栈弹出数据,如果输出栈不为空,则直接从出栈弹出数据就可以了。使用栈来模拟队列的行为,如果仅仅用一个栈,是一定不行的,所以需要两个栈一个输入栈,一个输出栈,这里要注意输入栈和输出栈的关系在。可能大家惯性思维,以为还要两个队列来模拟栈,其实只用一个队列就可以模拟栈了。讲完了栈实现队列,队列实现栈,接下来就是栈的经典应用了。225. 用队列实现栈。232.用栈实现队列。
2025-12-14 23:30:06
323
原创 第5天 哈希表1
建议:本题就开始考虑 什么时候用set 什么时候用数组,本题其实是使用set的好题,但是后来力扣改了题目描述和 测试用例,添加了 0 <= nums1[i], nums2[i] <= 1000 条件,所以使用数组也可以了,不过建议大家忽略这个条件。建议:本题虽然是 力扣第一题,但是还是挺难的,也是 代码随想录中 数组,set之后,使用map解决哈希问题的第一题。建议:大家要了解哈希表的内部实现原理,哈希函数,哈希碰撞,以及常见哈希表的区别,数组,set 和map。什么时候想到用哈希法,
2025-12-09 08:54:25
383
原创 第四天 代码随想录
双指针的操作,要注意,删除第N个节点,那么我们当前遍历的指针一定要指向 第N个节点的前一个节点,建议先看视频。本题链表操作就比较复杂了,建议大家先看视频,视频里我讲解了注意事项,为什么需要temp保存临时节点。算是链表比较有难度的题目,需要多花点时间理解 确定环和找环入口,建议先看视频。本题没有视频讲解,大家注意 数值相同,不代表指针相同。用虚拟头结点,这样会方便很多。24. 两两交换链表中的节点。试题 02.07. 链表相交。.删除链表的倒数第N个节点。142.环形链表II。
2025-12-09 08:50:45
151
原创 第三天 代码随想录
简单说: index-- 的“先判断后减”,刚好能让循环执行 index 次,精准移动到目标节点~之前的 0 是虚拟头节点的数值,而这里的 val 是新节点要存的有效数据。- 行3-4:循环找尾巴——只要当前珠子的挂钩( cur->next )不是空的,就往后走( cur = cur->next ),直到走到最后一个珠子(最后一个珠子的 next 是空的)。- 行5-6: cur 移动 index 次,停在“要插入位置的前一个珠子”(比如插在第2个珠子前, cur 停在第1个珠子)。
2025-12-08 09:57:34
616
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅