a = [-2, 1, 3, 4, -7, 5, -6, 2, 7]
def foo(arr):
res = arr[0] # 保存最大的累计和
arr_sum = 0 # 保存累计和
for num in arr:
if arr_sum > 0:
arr_sum += num # 累计和为非负,有继续累加的意义
else:
arr_sum = num # 累加和为负无意义重新累计
res = max(res, arr_sum) # 最大的累计和
return res
if __name__ == '__main__':
print(foo(a))
转载于:https://www.cnblogs.com/c-x-a/p/11065731.html