的问题是如下: 给定n个整数的序列L不一定明显,写,计算最大长度的递增子的算法:最大递增子
我开发的递归方程是这样的:
我从0开始的索引:
If j = n opt(j) = 0 (base case)
otherwise opt(j) = max j <i <= n such that Lj <Li = {opt(i) +1}
你认为是正确的,这样做呢?用于这一典型问题的标准解决方法是先计算在李的最大递增子的结局对序列的所有元素,然后这些值的最大值,即:
if i = 1 opt (i) = 1
otherwise opt (i) = max 1 <= j <= i-1 and Lj <Li = {opt (i)} +1
,然后在这些元素的最大值。
所以我想知道你是否认为我的解决方案正确无论如何。
为什么你想要一个在O(N^2)中运行的动态编程解决方案,其中已经存在可以在O(N logN)中完成的二进制搜索解决方案?见https://stackoverflow.com/questions/6129682/longest-increasing-subsequenceonlogn – 2017-12-28 09:09:45