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]