代码来源于浙江大学数据结构课程1.3最大子列和问题
def onLineMaxFind(nums):
N=len(nums)
if N==1:
return nums[0]
else:
sum_add=0
max_sum=float("-inf")
for i in range(N):
temp=sum_add+nums[i]#临时存储向右一位累加的结果
if temp>nums[i]:
sum_add=temp
else:#若累加结果小于0
#则sum_add清零,即从新的元素开始重新累加,因为此时的负值将会使向右累加值变
sum_add=nums[i]
if max_sum<sum_add:#持续保留当前最大的max_sum值
max_sum=sum_add
return maxSum
A=[2,3,4,1,-1,7,-3,7,-6]
print(onLineMaxFind(A))