【问题标题】:How can we assure that a Bitonic sequence will be formed from one longest increasing subsequence and one longest decreasing subsequence?我们如何保证一个双调序列将由一个最长的递增子序列和一个最长的递减子序列组成?
【发布时间】:2015-05-29 15:45:24
【问题描述】:

例如,我们有一个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} 的双音子序列吗?如果是,那么它的长度=6。但是双音子序列的长度=lis的长度+lds的长度-1, 在这里他们不相等。

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

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

【问题讨论】:

  • 我认为你错过了双音子序列的长度应该是“lis 的长度”+“lds 的长度”-“lis 和 lds 中出现的项目数”。另外,你的双音子序列不应该包括来自 lds 的“2”吗?
  • @twalberg 给定一个包含 n 个正整数的数组 A[0 … n​​-1],如果存在一个 k 且 i = A[k + 1] >= .. A[j – 1] > = A[j]。 .我从 geeksforgeeks 发现了这个,所以怎么能包括 2。

标签: arrays dynamic-programming


【解决方案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-1 是由于重复包含第 i 个位置的元素!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-20
    • 2016-04-11
    • 2013-07-03
    • 1970-01-01
    • 2020-04-15
    相关资源
    最近更新 更多