本专栏从LeetCode实践的角度出发,深入探讨算法设计与数据结构背后的原理。笔者希望透过本系列文章,不仅分享LeetCode经典例题的解题思路(配有大量图示辅助理解)和解题套路,同时循序渐进地讲解了动规、回溯、二分、哈希、DFS等算法设计方面的知识点。本专栏的终极目标是希望你能够在一个固定的地方,找到所需的、所有的、高质量的LeetCode题目解析。
希望你在订阅之前先知晓以下一些说明:
1、目前本专栏内共计包含有超过50篇文章,题型/知识点覆盖范围包括但不限于:动规、回溯、二分、哈希、DFS/BFS、随机算法、并查集、图算法、树与递归、数学计算类型等,已经覆盖了所有LeetCode题库中的考点,原则上我不会再增加新的知识点(因为似乎已经没什么可加的了)。
2、目前已经发布的题目解析数量已经超过了200道。我个人的题量大概在600道左右。也就是说,还有400道题目的解析我并没有发出来。因为我认为按题型来刷肯定要比你按题目来刷更扎实。授人以鱼不如授人以渔,我希望你学会的是解题的套路,而不是仅仅是某一道题的解法。但是,如果你希望看到某一道题,但是它目前还没有被我放出来,那么请你在博文下方留言,我会做相应的增补。毕竟,我的终极目标是希望你能够在一个固定的地方,找到所需的、所有的、高质量的LeetCode题目解析。
3、正如你所看到的,本专栏的主要参考书目是我的《算法之美——隐匿在数据结构背后的原理(C++版)》,但这本书对于你来说不是必须的。大部分的时候,我已经将该书的内容同时融入到了这个专栏中的专题文章里。但我同时觉得,你有一本将数据结构的书(无论哪本都行)在手边还是会比较方便查询的,这主要是考虑到可能存在一些我没讲到的细节(比如我觉得很基础、很简单之类的),有一个辅助参考书在,对你的学习会更有帮助。
4、本专栏所有题目的答案都是用Python编写的,我甚至还专门加了一篇让你巧妙运用Python语法加快解题的文章。毕竟,刷题的速度也是实际面试的时候要考虑的因素。使用Python我感觉(相比于C)会缩短30%甚至更多的解题耗时。但是,部分题目我还是额外配了C++的解答,因为我使用的参考书《算法之美——隐匿在数据结构背后的原理》里面使用的是C++。
5、如果你有订阅本专栏,我希望你能够最大限度地利用专栏中的文章资源来迅速提升自己的解题水平。如果你有问题(例如博文里面的解法看得不是很懂或者你有更好的解法),你可以在博文下方留言,可能互动性质的解答对你也是一种帮助。
最后一点经验:不要一味追求那种特别Fancy但缺乏普适性的解法,尽量找出并掌握那种一个模板就能解决好几十道甚至上百道问题的方法(或者称为套路),这才是能让你短时间内迅速提升的良方。
【本文完】