python 小练习4

给你一个整数list L, 如 L=[2,-3,3,50], 求L的一个连续子序列,使其和最大,输出最大子序列的和。
例如,对于L=[2,-3,3,50], 输出53(分析:很明显,该列表最大连续子序列为[3,50]).

我个人想法比较简单啦,只是按顺序遍历列表
AC1
l=[]
maxL = -1000
L = [2,-3,3,50]
for i in range(len(L)):
    toto = 0
    for j in range(i,len(L),1):
        toto = toto+L[j]
        if maxL<toto:
            maxL = toto
    l.append(maxL)
print(max(l))

AC2
网上抄了一段别人的代码,其思想是把各个点孤立起来,如果前面数之和为0就把前面数全舍去。
now = 0
sum = 0
for x in L:
now +=x
if now>sum:
sum = now
if now<0:
now = 0
print(sum)
 
原文地址:https://www.cnblogs.com/cunyusup/p/7146896.html