【刷题】算法基础刷题清单
一、基础算法
1、排序
快速排序:
归并排序:
基数排序:
2、二分查找
3、高精度
4、前缀和与差分
5、双指针算法
6、位运算
7、离散化
8、区间合并
9、RMQ
二、动态规划
1、线性DP
数字三角形:
最长上升子序列【LIS】:
最长公共子序列【LCS】:
最长公共上升子序列【LCIS】:
其他:
2、背包问题
01背包问题:
完全背包问题:
多重背包问题:
二维费用问题:
分组背包问题:
有依赖背包问题:
3、状态机模型
4、状态压缩DP
棋盘类状压:
集合类状压:
5、区间DP
环形区间DP:
记录方案:
二维区间DP:
6、树形DP
7、数位DP
8、单调队列优化
9、斜率优化
三、搜索
1、BFS
①、Flood Fill
②、最短路模型
③、多源BFS
④、最小步数模型
⑤、双端队列广搜
⑥、双向广搜
⑦、A*
2、DFS
①、连通性模型
②、搜索顺序
③、剪枝与优化
④、迭代加深
⑤、双向DFS
⑥、IDA*
四、数据结构
0、STL
1、链表与邻接表
2、栈与队列
3、kmp
4、Trie
5、堆
6、Hash表
7、并查集
8、树状数组
9、线段树
10、可持久化数据结构
11、平衡树——Treap
12、AC自动机
五、图论
1、树和图遍历
树的深度优先遍历: 树的宽度优先遍历: