《数据结构与算法之美》学习计划
- 基础篇:常用,26节/38讲
- 10个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树
- 10个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法
- 高级篇:进阶,9讲
- 实战篇:开源项目,5讲
第一阶段:熟练
| 知识点 | 难度 | 掌握程度 | 重点 |
|---|---|---|---|
| 复杂度分析 | Medium | 10 | 自行分析 ①时间复杂度 ②空间复杂度 |
| 数组、栈、队列 | Easy | 8 | 自己实现 ①动态数组 ②栈 ③队列 |
| 链表 | Medium | 9 | 轻松写出 ①链表反转 ②求中间结点 |
| 递归 | Hard | 10 | 轻松写出 ①斐波那契数列 ②求阶乘 ③归并排序 ④快速排序 ⑤回溯八皇后 ⑥背包问题 |
| 深度广度优先搜索 | Hard | 8 | 实现 ①广度优先搜索算法 BFS:队列 ②深度优先搜索算法 DFS:递归 |
| 二叉树 | Medium | 9 | 实现 ①二叉树三种遍历 ②按层遍历 ③求高度 |
| 排序、二分查找 | Easy | 7 | 实现 ①各种排序算法 ②二分查找及其变体 |
| 四种算法思想 贪心 分治 回溯 动态规划 |
Hard | 10 | 大量刷题 LeetCode 上 Medium 难度 |
第二阶段:理解
| 知识点 | 难度 | 掌握程度 | 重点 |
|---|---|---|---|
| 散列表 | Medium | 8 | 实现 拉链法解决冲突的散列表 |
| 堆与堆排序 | Medium | 8 | 实现 ①堆 ②堆排序 ③优先级队列 ④Top k ⑤中位数 |
| 字符串匹配 BF RK |
Easy | 7 | 实现 BF 算法 看懂 RK 算法 |
| 字符串匹配 Trie树 |
Medium | 7 | 看懂,知道特点、应用场景即可 |
| 图的表示 | Easy | 8 | 理解和实现图的三种表示方法 ①邻接矩阵 ②邻接表 ③逆邻接表 |
第三阶段:看懂
| 知识点 | 难度 | 掌握程度 |
|---|---|---|
| 跳表 | Medium | 6 |
| 拓扑排序、最短路径、A*算法 | Hard | 5 |
| B+ 树 | Medium | 5 |
| 位图 | Easy | 6 |
第四阶段:暂时跳过
| 知识点 | 难度 | 掌握程度 |
|---|---|---|
| 字符串匹配 BM KMP AC自动机 |
Hard | 3 |
| 红黑树 | Hard | 3 |
| 哈希算法 | Easy | 3 |