{A}
AlgoViz
首页
路线图
题单
教程
题目
可视化
错题本
进度
登录
加载中…
最长递增子序列 LIS
动态规划:每个位置记录以它结尾的 LIS 长度。
序列:
速度:
0.5x
1x
2x
4x
[0]
3
1
[1]
1
1
[2]
4
1
[3]
1
1
[4]
5
1
[5]
9
1
[6]
2
1
[7]
6
1
最长递增子序列(LIS):每个元素自身至少构成长度 1
当前最长 = 1(下标下数字为该位置结尾的 LIS 长度)
步骤 1 / 21
最长递增子序列(LIS):每个元素自身至少构成长度 1
算法代码
复制代码
当前高亮行:
1
(最长递增子序列(LIS):每个元素自身至少构成长度 1)
1
function
lis(seq) {
2
lengths = Array(n).fill(
1
);
3
for
(i =
1
..n)
for
(j =
0
..i)
4
if
(seq[j] < seq[i])
5
lengths[i] = max(lengths[i], lengths[j] +
1
);
6
return
max(lengths);
7
}