基础 4 节
01
复杂度分析与大 O
- 渐进记号与常数被忽略的代价
- 最好/最坏/摊还分析
- 空间与时间的互换
- 用实测验证复杂度
- 复杂度分析与大 O
02
线性表:数组与链表
- 顺序表与动态扩容策略
- 单链表/双链表/循环链表实现
- 删除与查找的指针操作
- 什么时候链表其实更慢
- 线性表:数组与链表
03
栈与队列
- 数组栈与链表栈
- 循环队列与双端队列
- 单调栈/单调队列
- 表达式求值与括号匹配
- 栈与队列
04
串与模式匹配
- 字符串存储与比较代价
- KMP 与 next 数组推导
- Rabin-Karp 滚动哈希
- 多模式匹配概览
- 串与模式匹配
进阶 5 节
05
树:二叉树、BST 与平衡
- 三种遍历与递归/非递归
- BST 的退化与旋转
- AVL 与红黑树取舍
- B 树/B+ 树与磁盘结构
- 树:二叉树、BST 与堆
06
堆与优先队列
- 数组实现二叉堆
- 建堆为何是 O(n)
- Top-K 与合并 K 路
- 配对堆/二项堆概览
- 堆与优先队列
07
哈希表
- 哈希函数与分布质量
- 开放寻址与链地址法
- 负载因子与再哈希
- 布隆过滤器
- 哈希表与冲突处理
08
图的存储与遍历
- 邻接矩阵/邻接表/前向星
- BFS 与 DFS 的非递归写法
- 拓扑排序与环检测
- 连通分量与二分图判定
- 图的存储与遍历
09
排序算法全族
- 插入/希尔/选择/冒泡的适用边界
- 归并与快排:稳定性与最坏情况
- 堆排序与原地 O(1) 空间
- 基数/计数排序与内省排序
- 排序算法全族
高级 3 节
10
动态规划
- 状态定义与转移推导
- 背包、区间、树形 DP
- 滚动数组与状态压缩
- 记忆化与递推互换
- 动态规划
11
贪心、分治与回溯
- 贪心正确性如何证明
- 分治与主定理
- 回溯剪枝与全排列类问题
- 双向搜索与迭代加深
- 贪心、分治与回溯
12
进阶结构专题
- 并查集与路径压缩
- 字典树与后缀数组
- 树状数组与线段树
- 跳表与 LRU 缓存
- 进阶结构专题