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

[pythontip]最大非连续子序列

时间:2015-10-01 00:32:08      阅读:777      评论:0      收藏:0      [点我收藏+]

标签:

题目链接: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])

[pythontip]最大非连续子序列

标签:

原文地址:http://www.cnblogs.com/vincentX/p/4850557.html

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