繁体   English   中英

我们如何保证一个由最长的增加的子序列和最长的减少的子序列组成的双音序列?

[英]How can we assure that a Bitonic sequence will be formed from one longest increasing subsequence and one longest decreasing subsequence?

例如,我们有一个array[]={1,3,2,7,4,6,8,9}

array[]={1,3,4,6,8,9}最长递增子序列,其长度= 6。

array[]={3,2}最长递减子序列,其长度= 2。

那么这个array[]={1,3,4,6,8,9}双子序列是array[]={1,3,4,6,8,9}吗? 如果是,则其长度= 6。但是,双子序列的长度= lis的长度+ lds -1的长度,此处它们不相等。

如果没有,如何证明双子序列的长度= lis的长度+ lds-1的长度

如果我错了,请纠正我。 谢谢。

该公式是正确的,并且仅给出6 ...考虑LIS [](作为LIS数组)和LDS [](作为LDS数组)。现在,当您从左向右迭代时,您将到达LIS [index ] = 6,即LIS直到array [7]为6。现在LDS [index = 7]为1(平时一个元素是序列的最大长度)...现在LIS [7] + LDS [7] -1 = (6 + 1-1)

现在,您需要双音序列的证明... LIS [i],LDS [i]表示直到i的最长递增/递减序列。 现在,最终您想要最大化它,这就是为什么您要在样本空间中进行搜索! 因此答案将是(LIS [i] + LDS [i] -1)的最大值0 <= i <= n-1 ... -1是由于在第i个位置重复包含元素!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM