给定一个数组,找到最大有序子集

时间:2015-07-09 04:02:36

标签: algorithm sorting

我想找到按升序排序的数组的最大子集

说我有

a = [2, 1, 4, 6, 7]
a_max_subset = [1, 4, 6, 7]

b = [4, 1, 2]
b_max_subset = [1, 2] 

c = [2, 5, 13, 8, 6, 23, 33]
c_max_subset = [2, 5, 8, 23, 33]

有一种有效的方法吗?

1 个答案:

答案 0 :(得分:0)

您要查找的是Longest increasing subsequence

您可以找到O(N ^ 2)实施here。它得到了很好的解释和评论。尝试理解解释并自己实现。

如果您真的很好奇,可以同时查看O(N logN) solution