子序列是否需要连续

时间:2015-09-11 23:57:26

标签: algorithm dynamic-programming subsequence

我是动态编程的新手,正在阅读最长增长子序列(LIS)问题。

该解决方案表明序列不需要像原始数组那样连续。可以在两者之间跳过元素;但我受到了另一种印象。

请你帮忙澄清一下这种混乱。

比如说: a = {10,22,9,33,55,66,12,90} LIS是{10,22,33,55,66,90} => 6

但是,我认为这将是{33,55,66}

由于

1 个答案:

答案 0 :(得分:3)

子序列不需要连续。通过从数组中删除零个或多个元素来形成子序列。另一方面,subaaray总是连续的。让我们举个例子:

a = {10,22,9,33,55,66,12,90}

此处,{10,22,33,55,66,90}是增长最长的子序列,{33,55,66}是增长最长的子阵列。

所以,你基本上回答的是解决最长的子阵列问题。