题目描述
给定数组arr,设长度为n,输出arr的最长递增子序列。(如果有多个答案,请输出其中字典序最小的)
代码1:超时版本
# retrun the longest increasing subsequence
# @param arr int整型一维数组 the array
# @return int整型一维数组
class Solution:
def LIS(self , arr ):
# write code here
n = len(arr)
list = [1]*n
for i in range(1,n):
for j in range(0,i):
if arr[i] > arr[j]:
list[i] = max(list[j]+1,list[i])
var = max(list)
value = []
for i in range(0,n):
if var == list[n-1-i]:
value.append(arr[n-1-i])
var -= 1
return value[::-1]