zoukankan      html  css  js  c++  java
  • [pythontip]最大非连续子序列

    题目链接:http://www.pythontip.com/coding/code_oj_case/36
    给你一个整数list L, 如 L=[2,-3,3,50], 求L的一个非连续子序列,使其和最大,输出最大子序列的和。 这里非连续子序列的定义是,子序列中任意相邻的两个数在原序列里都不相邻。 例如,对于L=[2,-3,3,50], 输出52(分析:很明显,该列表最大非连续子序列为[2,50]).


    dp首先复制L序列的元素,然后比较前两个元素,确定最优解赋值给dp[1]。
    1 # L=[2,-3,3,50]
    2 dp = list(L)
    3 dp[1] = max(dp[1], dp[0])
    4 for i in range(2, len(L)):
    5     dp[i] = max(max(dp[i], dp[i-1]), dp[i-2]+L[i])
    6 print(dp[len(L)-1])
  • 相关阅读:
    模板方法模式
    备忘录模式
    观察者模式
    中介者模式
    迭代器模式
    Char型和string型字符串比较整理
    命令模式
    责任链模式
    代理模式
    dokcer 杂谈
  • 原文地址:https://www.cnblogs.com/kirai/p/4850557.html
Copyright © 2011-2022 走看看