动态规划

最常见问题:
最长递增子序列

此代码求,最长子序列

def function(array):
    #n代表数组长度
    length=len(array)
    Max=0
    #定义一个数组,储存着到第n个元素时,它的最长子序列,一共n个元素
    arrayMax=[]

    for i in range(0,length):
        temp=1
        for j in range(0,i):
            if array[j]<array[i]:
                temp=max(temp,arrayMax[j]+1)
        arrayMax.append(temp)
        print(arrayMax)
        if Max<temp:
            Max=temp

    return  Max
array=[1,2,3,4,5,6,7,8,9]
print(function(array))

最长公共子序列
最长公共子串
最小编辑代价问题
0/1背包问题
股票收益最大化问题
数组中给定一个sum,找到最大能装的数

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 回溯算法 回溯法:也称为试探法,它并不考虑问题规模的大小,而是从问题的最明显的最小规模开始逐步求解出可能的答案,并...
    fredal阅读 13,712评论 0 89
  • 0. 动态规划分析 0.1 动态规划、递归和贪心算法的区别 动态规划就是利用分治思想和解决冗余的办法来处理问题,所...
    dreamsfuture阅读 7,461评论 2 6
  • 目录 1. 概念2. 分治与动态规划3. 求解问题的特点4. 步骤5. 斐波那契数列6. 最长公共子序列(LCS)...
    小金hhh阅读 4,772评论 0 1
  • 定义一组子问题,按照由小到大,以小问题的解答支持大问题求解的模式,依次解决所有的子问题,并最终得到原问题的解答。 ...
    芥丶未央阅读 893评论 0 2
  • 动态规划 动态规划是一种高性能的牛逼算法,由美国的R.Bellman提出,它是动态就是体现在此算法是基于一个递推公...
    董泽平阅读 1,175评论 0 12