学习算法绕不开的一个网站应该就是LeetCode了,在刷力扣之前,是查过网上一些牛人的刷题心得的,大致总结下应该会有这几种:
1、上来直接顺着题号开刷;
2、查询热点TOP题型开刷;
3、有牛人总结题号开刷;
4、按照算法和数据结构去刷对应题型;
柿子采取的是第四种,根据目前算法和数据结构来刷对应的题型,刷过一种之后进行总结归纳,整理出该种算法的优劣模板,最好最好能把解题模板整理一下。
打开 LeetCode 网站,如果我们按照题目类型数量分类,最多的几个题型有数组、动态规划、 数学、字符串、树、哈希表、深度优先搜索、二分查找、贪心算法、广度优先搜索、双指针等等。 本书将包括上述题型以及网站上绝大多数流行的题型,并且按照难易程度和类型进行分类。
第一个大分类是算法。主要是针对常见算法题型进行总结;
第二大类是数学相关题型,包括偏向纯数学的数学问题,和偏向计算机知识的位运算问题。这类问题在实际工作中并不常用,建议可以优先把精力放在其它大类;
第三个是最最重要的数据结构,包含的常见数据结构、字符串处理、链表、树和 图。其中,链表、树、和图都是用指针表示的数据结构,且前者是后者的子集。最后我们也将介 绍一些更加复杂的数据结构,比如经典的并查集和 LRU。
下面很长一段时间内会根据上面脑图进行题型分析和算法总结,一步一个脚印的慢慢来;