python最大子序列和(连续)——在线处理(动态规划)

代码来源于浙江大学数据结构课程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

T(N)=O(N)

你可能感兴趣的:(数据结构)