是个传颂厨

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
给你一个整数list L, 如 L=[2,-3,3,50], 求L的一个非连续子序列,使其和最大,输出最大子序列的和。
这里非连续子序列的定义是,子序列中任意相邻的两个数在原序列里都不相邻。
例如,对于L=[2,-3,3,50], 输出52(分析:很明显,该列表最大非连续子序列为[2,50]).
L=[-1,-1,2,3,4,5]
for i in range(2, len(L)):
    L[i] = max(max(L[0:i-1]), 0) + L[i]
print max(L[:])

比如第i个数,求1~i-2的最大数,这样不是连续序列。

从第三个数开始递归循环到第i个数。

posted on 2016-03-24 22:15  是个传颂厨  阅读(376)  评论(0编辑  收藏  举报