算法
目录
- 算法基础学习
- 递归和斐波那契数列
- 查找算法
- 排序算法
- 插入排序
- 线性表
- Go 回文检测
- leetcode 算法题加 1
- iterator 模式
- 布隆过滤器
- 滑动窗口
- 水塘抽样
- LRU 缓存
- 前缀树(Trie)
- 并查集(Union-Find)
- 单调栈
- 二叉堆(优先队列)
- 回溯算法
- 二分查找
- 动态规划
- 双指针
- 贪心算法
- 广度优先搜索(BFS)
- 快速排序与快速选择
- 位运算
- 拓扑排序
- 前缀和与差分数组
- KMP 字符串匹配
- 归并排序
- 单调队列
- 线段树
- LFU 缓存
- Dijkstra 最短路径算法
- Top K 问题
- 一致性哈希
- 跳表
- Kadane 算法(最大子数组和)
- 最长递增子序列(LIS)
- 双堆找中位数
- 树状数组(Binary Indexed Tree)
- Floyd 判圈算法(龟兔算法)
- 合并区间
- A* 搜索算法
- 计数排序
- Morris 遍历(O(1) 空间遍历二叉树)
- 编辑距离(Edit Distance)
- 0-1 背包问题
- 最长公共子序列(LCS)
- 约瑟夫斯问题(Josephus Problem)
- Manacher 算法(马拉车)
- Rabin-Karp 字符串哈希算法
- 接雨水问题
- 珂朵莉树(Chtholly Tree)
- AC 自动机(Aho-Corasick)
- 状态压缩动态规划(Bitmask DP)
- 卡特兰数(Catalan Number)
- 扫描线算法(Sweep Line)
- 并查集(Union-Find)
- 扩展欧几里得算法(Extended Euclidean)
- 分数背包(Fractional Knapsack)
- 稀疏表(Sparse Table)
- Treap(树堆)
- 单调栈
- Minimax 算法与 Alpha-Beta 剪枝
- Prim 最小生成树算法
- 桶排序(Bucket Sort)
- 最近公共祖先(LCA)
- 倍增算法(Binary Lifting)
- 莫队算法(Mo's Algorithm)
- 红黑树(Red-Black Tree)
- 摩尔投票算法(Boyer-Moore Voting)
- Tarjan 强连通分量算法
- Z 函数(Z-Algorithm)
- 后缀数组(Suffix Array)
- Bellman-Ford 算法(含负权边与负环检测)
- 后缀自动机(Suffix Automaton)
- 快速幂算法(Binary Exponentiation)
- 二分图与匈牙利算法(Bipartite Matching)
- 欧拉路径与欧拉回路(Eulerian Path)
- 基数排序(Radix Sort)
- 最长回文子序列(Longest Palindromic Subsequence)
- 笛卡尔树(Cartesian Tree)
- 链表算法精讲(反转 / 中点 / 环 / 相交 / 合并 / 排序)
- 树链剖分(Heavy-Light Decomposition)
- 最大流与最小割(Max Flow & Min Cut)
- K 路归并:合并 K 个排序链表
- AVL 树(自平衡二叉搜索树)
- 斜堆(Skew Heap)
- 替罪羊树(Scapegoat Tree)
- B+树
- HyperLogLog 基数估计
- 回文树(Eertree / Palindromic Tree)
- 二叉树的序列化与反序列化
- Count-Min Sketch 频率估计
- 分治算法(Divide and Conquer)
- 打家劫舍系列(House Robber I/II/III)
- 数位 DP(Digit DP)
- 栈与队列设计题精讲(最小栈/用栈实现队列/用队列实现栈/循环队列)
- 带权并查集(Weighted Union-Find)
