算法总结
算法记录
本文记录学习算法过程中的各个知识点,分为七个部分,分别是基础算法、数据结构、搜索、图论、数学知识、动态规划、贪心。每个部分会作为一个独立的章节,并根据其中的知识点进一步划分为小节。对于每个小节,我会描述该小节的知识点、代码模块和适用场景,并且加入至少一道模板题以加深理解。
基础算法 | 数据结构 | 搜索 | 图论 | 数学知识 | 动态规划 | 贪心 |
---|---|---|---|---|---|---|
排序 | 链表 | DFS | Dijkstra | 质数 | 背包问题 | 区间问题 |
二分 | 队列 | BFS | Bellman-Ford | 约数 | 线性DP | Huffman树 |
高精度 | 单调栈 | 树和图的深度优先遍历 | SPFA | 欧拉函数 | 区间DP | 排序不等书 |
前缀和与差分 | 单调队列 | 树和图的广度优先遍历 | Floyd | 快速幂 | 计数类DP | 绝对值不等式 |
双指针算法 | KMP | Flood Fill | Prim | 拓展欧几里得算法 | 数位DP | 推公式 |
位运算 | Trie | 最短路模型 | Kruskal | 中国剩余定理 | 状态压缩DP | |
离散化 | 并查集 | 多源BFS | 染色法 | 高斯消元 | 树形DP | |
区间合并 | 堆 | 最小步数模型 | 匈牙利算法 | 组合数 | 记忆化搜索 | |
递推与递归 | 哈希表 | 双端队列广搜 | 负环 | 容斥原理 | 状态机模型 | |
RMQ | 树状数组 | 双向广搜 | 差分约束 | 博弈论 | 单调队列优化DP | |
线段树 | A* | 最近公共祖先 | 矩阵乘法 | 斜率优化DP | ||
可持久化数据结构 | DFS优化 | 有向图的强连通分量 | 概率与数学期望 | |||
平衡树 | 迭代加深 | 无向图的双连通分量 |