相信很多小伙伴刷题的时候面对力扣上近两千道题目,感觉无从下手,我花费半年时间整理了Github项目:leetcode刷题攻略。 里面有100多道经典算法题目刷题顺序、配有40w字的详细图解,常用算法模板总结,以及难点视频讲解,按照list一道一道刷就可以了!star支持一波吧!
目前「代码随想录」已经开放下载了二叉树和回溯算法学习手册PDF,广受录友们好评。
此时Carl又把贪心算法整理出来了,贪心算法学习手册正式发布!
(后面各个专题的pdf将陆续发布)
该PDF共4万字,20多张分析图,25篇精品文章,详细讲解了18道leetcode贪心算法经典题目,PDF将近100页。
依旧保持「代码随想录」严谨缜密的风格,这是全网最全最详细的贪心算法专题讲解!
先上图:
如何使用这本PDF?
就是按顺序刷就可以了!
题目顺序都编排好了,按照pdf里排好的题目顺序来刷效果最好,这份刷题顺序已经陪伴上万录友(代码随想录的朋友们)。
本PDF题目大纲如下:
Carl在讲解贪心专题的时候就说了:贪心系列并不打算严格的从简单到困难这么个顺序来讲解。
因为贪心的简单题可能往往过于简单甚至感觉不到贪心,如果我连续几天讲解简单的贪心,估计录友们一定会不耐烦了,会感觉贪心有啥好学的。
但贪心的难题又真的有点难,所以我是简单困难交错着讲的,这样大家就感觉难度适中,而且贪心也没有什么框架和套路,所以对刷题顺序要求没有那么高。
在贪心专题中,Carl列举的题目难度会整体呈现一个阶梯状上升,细心的录友们应该有所体会。
贪心专题又和回溯专题不同,大家可以发现我是严格按照框架难度顺序循序渐进讲解的,和贪心又不一样,因为回溯法如果题目顺序没选好,刷题效果会非常差!
同样回溯系列也不允许简单困难交替着来,因为前后题目都是有因果关系的,相信跟着刷过回溯专题的录友们都会明白我的良苦用心,哈哈。
我在PDF中也详细讲解了大家对贪心常有的疑惑,例如:
- 贪心很简单,就是常识?
跟着一起刷题的录友们就会发现,贪心思路往往很巧妙,并不简单。
- 贪心有没有固定的套路?
贪心无套路,也没有框架之类的,需要多看多练培养感觉才能想到贪心的思路。
- 究竟什么题目是贪心呢?
Carl个人认为:如果找出局部最优并可以推出全局最优,就是贪心,如果局部最优都没找出来,就不是贪心,可能是单纯的模拟。(并不是权威解读,一家之辞哈)
但我们也不用过于强调什么题目是贪心,什么不是贪心,那就太学术了,毕竟学会解题就行了。
- 如何知道局部最优推出全局最优,有数学证明么?没有数学证明感觉不靠谱?
在做贪心题的过程中,如果再来一个数据证明,其实没有必要!手动模拟一下,如果找不出反例,就试试贪心。面试中,代码写出来跑过测试用例即可,或者自己能自圆其说理由就行了。
在对于贪心问题,很多同学是两个极端:左极端,右极端。
左极端:就是遇到问题就要数学证明,没有数学证明就感觉不靠谱,但自己最终花费了大量的时间还是证明不出来。
右极端:贪心很简单,就是常识,很自然就是这么做,但一些题目一旦超出常识的思考范围了,就毫无思路了。
而Carl在讲解贪心的时候,既有简单适当的证明(每篇文章都用了反证法),也把常识性的知识理论化,系统化(局部最优、全局最优的分析)。
介绍了这么多还是眼见为实,相信看完这本PDF,保证你会对贪心算法有一个新的认识了!
如果感觉对你有帮助,不要吝啬给一个👍吧!