Dynamic Programming(动态规划)
将复杂问题拆解为一系列简单的小问题来依次解决,通过保存子问题的结果,有效避免重复计算。
DAG(有向无环图)
唯一可以进行拓扑排序的图类型
dag中可以用拓扑排序简化relax过程
拓扑排序会将所有的顶点排成线性顺序
LIS(Longest Increasing Subsequence,最长递增子序列)
A = [10, 22, 9, 33, 21, 50, 41, 60, 80]
[10, 22, 33, 50, 60, 80]
顺序不变,但是递增,是原集合的子集
LLIS就是最长递增子序列的长度
LLIS是DAG最长路径+1
DAG SPT(有向无环图的最短路径树)
- 进行拓扑排序
- 全部设置为-1
- 从左往右遍历
- 记录下最长的路径,同时更新distTo数组,记录previous节点
LLSEA (Longest Length of Increasing Subsequence Ending at digit A”)
可以用小的Q的答案来找大的Q