最长递增子序列

xiaoxiao2021-02-28  105

给定数组arr,返回arr的最长递增子序列

dp[i]为以i位置的数结尾的情况下,最长递增子序列长度

#coding=utf-8 while True: try: arr=map(int,raw_input().strip().split()) dp=[0 for i in range(len(arr))] for i in range(len(arr)): dp[i]=1 for j in range(i,-1,-1): if arr[i]>arr[j]: dp[i]=max(dp[i],dp[j]+1) print dp ind=dp.index(max(dp)) print ind res=[] while len(res)<max(dp): res.append(arr[ind]) for i in range(ind-1,-1,-1): if arr[i]<arr[ind] and dp[i]==dp[ind]-1: ind=i break res.reverse() print res except: break
转载请注明原文地址: https://www.6miu.com/read-53446.html

最新回复(0)