【笔试/面试】 —— 最长递增子序列

最长递增(或者非递减)子序列:如果存在多个这样的序列的话,就只需找出其中一个。并且,该序列中的元素在子集中也得保有其原有顺序。例如,对于 [3, 1, 0, 2, 4] 这个序列来说,[1, 2, 4] 就是它的一个解。

朴素版

遍历 + 判断

from itertools import combinations

def naive_lis(seq):
    l = len(seq)
    for length in range(l-1, 0, -1):
        for sub in combinations(seq, length+1):
            if list(sub) == sorted(sub):
                return sub

你可能感兴趣的:(算法)