第二长的增加子序列的长度

时间:2016-09-25 13:59:05

标签: algorithm dynamic-programming

你必须用O(n ^ 2)解决它。 (这可能与LIS的长度相等,例如" 13245")

1 个答案:

答案 0 :(得分:0)

此问题可以简化为:

检查是否存在两个或更多不同的LIS(当然最大长度相同) 如果答案是肯定的 - “第二”-LIS显然与LIS的长度相同。
如果答案是否定的 - 第二个LIS长度是最长的减去1的长度。

为了找到LIS的数量,您可以简单地修改here描述的O(n^2)算法,不仅可以跟踪最大长度,还可以跟踪这些最大值的数量。