约 10 分钟
从序列里挑出一些数(可不连续),让它们严格递增,求最长长度(LIS)。设 dp[i] 为“以第 i 个数结尾”的 LIS 长度,转移:对所有 j<i 且 a[j]<a[i],dp[i]=max(dp[i], dp[j]+1)。这是 O(n²) 做法。
dp[i]
j<i
a[j]<a[i]
dp[i]=max(dp[i], dp[j]+1)
序列 1 3 2 4 的最长上升子序列长度是多少?
1 3 2 4
登录 后可看答案