确定最长增长子序列的算法?

时间:2015-09-24 10:13:30

标签: algorithm tree

这个问题可以通过从给定的整数数组中生成BST来解决。在BST中插入需要O(logn)。所以n次插入将采用O(nlogn)。然后,最长的子序列可以通过遍历从根开始的最右边的子项来导出。这最多可以占用O9n)。因此总体时间复杂度将是O(nlogn)。这是正确的做法吗?

1 个答案:

答案 0 :(得分:4)

不,这种方法不正确。考虑这棵树:

    10
  2    11
 1 3
    4

显然,这里增长最长的子序列是2,3,4但你的算法会给10,11更短的时间。

与此同时,没有办法说出我的树是如何建造的。这两个序列都会给出相同的树:

10,2,1,3,4,11
10,11,2,1,3,4

这两个具有不同的最长增加子序列!