# 第一章 - 算法专题 # 算法专题 以下是一些我总结的类型题目,提前搞懂这些东西对之后的做题很有帮助,强烈建议先掌握。另外我的 91 天学算法也对专题进行了更细粒度的整理,具体参见[91 天学算法](index2.html) 首先基础的数据结构大家是必须掌握的,其次就是暴力法。暴力法也是算法,只不过我们追求的肯定是性能更好的算法。因此了解暴力法的算法瓶颈以及各种数据结构的特点就很重要, 这样你可以可以根据这些知识去一步步逼近最优解。 再之后就是必须掌握的算法。比如搜索算法是必须掌握的,搜索算法的范围很广,但是核心就是搜索的,不同的算法在于搜索的方式不同,典型的就是 BFS 和 DFS,当然二分法本质上也是一种搜索算法。 还有就是暴力优化法也是必须掌握的,和搜索一样,范围很广。 有剪枝, 空间换时间等。 其中空间换时间又有很多,比如哈希表, 前缀树等等。 围绕这个思想去学习, 就不会差太多,其他我就不多说,大家慢慢体会。 - [数据结构](basic-data-structure.html) - [二叉树的遍历](binary-tree-traversal.html) - [动态规划](dynamic-programming.html) - [哈夫曼编码和游程编码](run-length-encode-and-huffman-encode.html) - [布隆过滤器](bloom-filter.html) - [字符串问题](string-problems.html) - [前缀树专题](trie.html) - [《贪婪策略》专题](greedy.html) - [《深度优先遍历》专题](DFS.html) - [滑动窗口(思路 + 模板)](slide-window.html) - [位运算](bit.html) - [设计题](design.html) - [小岛问题](island.html) - [最大公约数](GCD.html) - [并查集](union-find.html) - [前缀和](prefix.html) - [平衡二叉树专题](balanced-tree.html)