算法模板(Java版)
@ZZHow(ZZHow1024)
基础算法
- 排序与二分
- 排序(快速排序、归并排序、选择排序 和 冒泡排序)
- 二分(整数的二分 和 实数的二分)
- 非负整数的高精度运算
- 非负整数的高精度加法
- 非负整数的高精度减法
- 非负整数的高精度乘法
- 非负整数的高精度除法
- 补充 Java 大整数类的常用方法
- 前缀和与差分
- 前缀和(一维前缀和 与 二维前缀和)
- 差分(一维差分 与 二维差分)
- 双指针算法、位运算、离散化 和 区间合并
- 双指针算法
- 位运算
- 离散化
- 区间合并
数据结构
- 链表(单链表、双链表)、栈和队列
- 单链表
- 双链表
- 模拟栈
- 模拟队列
- 单调栈
- 单调队列
- 字符串、并查集和堆
- 字符串
- KMP字符串
- Trie树
- 并查集
- 堆
- 字符串
- 哈希表
- 模拟散列表
- 字符串哈希
搜索与图论
- DFS与BFS
- DFS
- BFS
- 树与图的深度优先遍历
- 树与图的广度优先遍历
- 图的最短路径
- 朴素 Dijkstra
- 堆优化版 Dijkstra
- bellman-ford
- SPFA
- Floyd
数学知识
没有模板
动态规划
没有模板
常见模型
- 背包问题
- 01背包:每件物品最多只用一次
- 完全背包:每件物品有无限个
- 多重背包:每件物品有有限个
- 分组背包:每一组里只能选一个物品