这道题很多地方都有讲解,容易查到,算是个复习吧(leetcode有没有这题还真不知道,突然想起来的,就实现了下,今天偷懒了):
基本思路是如果一个子序列当前为正数,显然他和后面的值相加会使得后面的序列变得更大。
如果不需要找出来这个子序列:只是求得最大值,所以我们可以一边遍历一边更新最大值。
最终遍历结束最大值也就算出来了,代码如下:
1 def max_sum_sub_list(l):
2 maxsum = 0
3 cur = 0
4 for i in l:
5 cur += i
6 if cur > maxsum:
7 maxsum = cur
8 if cur <0:
9 cur =0
10
11 return maxsum