我是动态编程的新手,正在阅读最长增长子序列(LIS)问题。
该解决方案表明序列不需要像原始数组那样连续。可以在两者之间跳过元素;但我受到了另一种印象。
请你帮忙澄清一下这种混乱。
比如说:
a = {10,22,9,33,55,66,12,90}
LIS是{10,22,33,55,66,90} => 6
但是,我认为这将是{33,55,66}
由于
答案 0 :(得分:3)
子序列不需要连续。通过从数组中删除零个或多个元素来形成子序列。另一方面,subaaray总是连续的。让我们举个例子:
a = {10,22,9,33,55,66,12,90}
此处,{10,22,33,55,66,90}
是增长最长的子序列,{33,55,66}
是增长最长的子阵列。
所以,你基本上回答的是解决最长的子阵列问题。