春水煎茶
本博客的算法类文章的检索目录:
- 下划线的为推荐文章。
- 圆圈标记:颜色越深越难理解 ,仅是一种参考 。
分治
排序
二分法
其他
栈&队列
数据结构
- 数组原地操作问题
- 链表经典问题(长文)
- 堆 - 优先级队列 heap(长文)
- 跳跃表的构造思路和基本操作 skiplist
- 二叉树的遍历(简记)
- 并查集(简记)
- 树状数组和典型应用 BIT(长文)
- 无旋平衡树之 fhq treap(长文)
- 四叉树的思路、优化 和 C++ 实现
字符串
KMP
BM
动态规划
线性 DP
- 最长递增子序列 LIS 问题 - 动规解法 (经典单串)
- 最长回文子序列 (经典单串)
- 最长回文子串 (经典单串), 长文
- 最大连续子序列和问题 - 最大子段和 (经典单串)
- 最长公共子串和最长公共子序列 LCS 问题 (经典双串)
- 最短编辑距离 (经典双串)
背包 DP
状态机 DP
DP 优化
- 最长公共上升子序列 LCIS (经典 DP 转移优化)
- 一个构造单调序列问题的 DP 优化(slope trick,冷门科技)
- LIS 问题的 DP 优化 (数据结构优化转移)
- 网格图中最少访问的格子数(数据结构优化转移)
树上 DP
经典问题模型
滑动窗口
TopK 问题:
最长递增(上升)子序列 LIS 问题:
- LIS 朴素 DP 解法 O(n2)
- LIS 二分解法、DAG 模型 和 延伸问题 O(nlogn) - 长文
- LIS DP 转移优化的三种解法 O(nlogn) - 长文
- LIS 的个数问题 O(nlogn) - 树状数组、平衡树、dag 模型解法
- 有限上升 LIS 问题的两种解法
- 递增的三元子序列