您的位置:首页 > 编程语言 > Python开发

最长递增自序列 python

2016-06-10 02:48 316 查看
最长递增自序列是一个用动态规划中的经典问题。

def get_max_increase_sequence(a):
# dp[i] = max{dp[j] | 0<=j<i, a[i]<a[j] } + 1
num=len(a)
dp=[0]*num
for i in xrange(num):
for j in xrange(i):
if a[j]<a[i] and dp[j]>dp[i]:
# a[j]<a[i] means that dp[i] should base on dp[j]
# update dp[j] and select bigger one
dp[i]=dp[j]
dp[i]+=1
return dp

a=[1,2,3,4,0,1]
print get_max_increase_sequence(a)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 动态规划