算法题精简速查(按大类 -> 常见解法)
用途:
- 不是“看到什么题想到什么”
- 而是“这个大类里常用哪些解法”
- 适合平时快速翻看、搭知识框架
1. 数组
- 遍历
- 模拟
- 双指针
- 快慢指针
- 滑动窗口
- 前缀和
- 差分
- 哈希统计
- 排序
- 二分查找
- 单调栈
- 单调队列
- 堆 / 优先队列
- 摩尔投票
- 位运算
- 动态规划
- 贪心
2. 字符串
- 遍历
- 模拟
- 双指针
- 滑动窗口
- 哈希计数
- 排序
- 栈
- 前缀和
- KMP
- Trie(前缀树)
- 回文处理
- 动态规划
- 回溯
- 位运算
3. 链表
- 遍历
- 虚拟头结点
- 快慢指针
- 反转链表
- 双指针
- 分组合并
- 递归
- 分治
- 哈希映射
4. 栈 / 队列 / 堆
栈
- 普通栈
- 单调栈
- 辅助栈
队列
- 普通队列
- 双端队列
- 单调队列
堆
- 小顶堆
- 大顶堆
- 双堆
5. 哈希
- HashMap
- HashSet
- 频次统计
- 映射关系
- 去重
- 前缀和 + 哈希
- 状态记录
6. 树
- DFS 递归
- DFS 迭代
- BFS 层序遍历
- 前序 / 中序 / 后序
- 分治递归
- 回溯
- BST 性质
- 树形 DP
- 前缀树 Trie
7. 图
- DFS
- BFS
- 拓扑排序
- 并查集
- 最短路径
- 最小生成树
- 染色法
- Floyd
- Bellman-Ford / SPFA
8. 搜索
- DFS
- BFS
- 双向 BFS
- 回溯
- 剪枝
- 记忆化搜索
9. 排序
基础排序
- 冒泡排序
- 选择排序
- 插入排序
- 希尔排序
进阶排序
- 归并排序
- 快速排序
- 堆排序
非比较排序
- 计数排序
- 桶排序
- 基数排序
10. 查找
- 顺序查找
- 二分查找
- 哈希查找
- 树查找
- 堆查找
11. 二分
- 标准二分
- 边界二分
- 答案二分
- 二分 + check
- 二分搜索树上答案
12. 回溯
- 组合
- 子集
- 排列
- 切割
- 枚举路径
- 棋盘搜索
- 剪枝优化
13. 动态规划
基础 DP
- 线性 DP
- 记忆化搜索
- 滚动数组优化
常见 DP 分类
- 背包 DP
- 区间 DP
- 子序列 DP
- 状态机 DP
- 树形 DP
- 数位 DP
- 概率 DP
- 状压 DP
14. 贪心
- 排序贪心
- 区间贪心
- 局部最优
- 反悔贪心
- 堆优化贪心
15. 区间问题
- 排序 + 合并
- 前缀和
- 差分
- 贪心
- 堆
- 线段树
- 树状数组
16. 数学
- 模拟
- 找规律
- 进制转换
- 最大公约数 GCD
- 最小公倍数 LCM
- 快速幂
- 质数筛
- 组合数学
- 容斥原理
- 概率
- 同余
- 矩阵快速幂
17. 位运算
- 异或
- 与 / 或 / 非
- 左移 / 右移
- lowbit
- 位掩码
- 状态压缩
- 子集枚举
18. 设计题 / 数据结构题
- 栈
- 队列
- 双端队列
- 堆
- 哈希表
- 链表
- 双向链表
- Trie
- 并查集
- LRU / LFU
- 线段树
- 树状数组
- 跳表
19. 高频基础模块(最值得先掌握)
- 哈希
- 双指针
- 滑动窗口
- 快慢指针
- 二分
- 栈 / 单调栈
- 堆
- 二叉树 DFS / BFS
- 图的 DFS / BFS
- 回溯
- 动态规划基础
- 贪心
- 并查集
- 拓扑排序
20. 最简记忆版
线性结构
- 数组:双指针 / 滑动窗口 / 前缀和 / 差分 / 哈希 / 二分 / 单调结构
- 字符串:双指针 / 滑动窗口 / 哈希 / KMP / Trie / DP
- 链表:虚拟头 / 快慢指针 / 反转 / 合并 / 哈希
非线性结构
- 树:DFS / BFS / 递归 / BST / 树形 DP
- 图:DFS / BFS / 拓扑 / 并查集 / 最短路 / 最小生成树
算法思想
- 排序:基础排序 + 高级排序 + 非比较排序
- 搜索:DFS / BFS / 回溯 / 剪枝
- 二分:查值 / 查边界 / 查答案
- DP:线性 / 背包 / 区间 / 子序列 / 状态机 / 树形
- 贪心:排序贪心 / 区间贪心 / 反悔贪心
- 数学:进制 / GCD / 快速幂 / 质数 / 组合
- 位运算:异或 / 位掩码 / 状压