Python 最长递增子序列

Python 最长递增子序列代码如下所示:

def lis(arr):
 n = len(arr)
 m = [0]*n
 for x in range(n-2,-1,-1):
 for y in range(n-1,x,-1):
 if arr[x] < arr[y] and m[x] <= m[y]:
 m[x] += 1
 max_value = max(m)
 result = []
 for i in range(n):
 if m[i] == max_value:
 result.append(arr[i])
 max_value -= 1
 return result
 
arr = [10, 22, 9, 33, 21, 50, 41, 60, 80]
print(lis(arr))

以上代码运行结果为:

[10, 22, 33, 50, 60, 80]

Python 最长递增子序列

相关推荐