码迷,mamicode.com
首页 > 编程语言 > 详细

最长递增子序列 python

时间:2016-06-10 06:10:36      阅读:1358      评论:0      收藏:0      [点我收藏+]

标签:

最长递增子子序列,这是动态规划里的经典问题了。

python代码如下

技术分享
def get_max_increase_sequence1(a):
    # dp[i] = max{dp[j] | 0<=j<i,a[i]<a[j] } + 1
    # O(n**2)
    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_sequence1(a)
get_max_increase_sequence.py

听说还有优化方法,下次再写吧。

最长递增子序列 python

标签:

原文地址:http://www.cnblogs.com/super-zhang-828/p/5573081.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!