问题如下:
给定一个长度为n的整数序列L,不一定是不同的,编写一个算法来计算最长递增子序列:
我开发的递推方程式如下:
我从索引0开始:
我开发的递推方程式如下:
我从索引0开始:
If j = n opt(j) = 0 (base case)
otherwise opt(j) = max j <i <= n such that Lj <Li = {opt(i) +1}
你认为这样做是正确的吗?针对这个典型问题使用的标准解决方案是先计算序列中以Li结尾的最大递增子序列,然后在这些值中找到最大值,即:
if i = 1 opt (i) = 1
otherwise opt (i) = max 1 <= j <= i-1 and Lj <Li = {opt (i)} +1
然后对这些元素求最大值。
所以我想知道您是否认为我的解决方案仍然是正确的。