luoheng
9/3/2019 - 2:31 AM

最长递增子序列

"""
input: 5, 6, 7, 1, 2, 8
output: 5, 6, 7, 8

solution: dynamic
"""

def LongestUpSeq(A):
    dp = [1] * len(A)
    for i in range(1, len(A)):
        dp[i] = max(dp[i], dp[i], *(dp[j] + 1 for j in range(i) if A[j] < A[i]))
    return max(dp)

def main():
    A = [5, 6, 7, 1, 2, 8]
    print(LongestUpSeq(A))

if __name__ == "__main__":
    main()