Maximum subarray sum(求最大的子数组求和)

xiaoxiao2021-02-28  39

例如

maxSequence([-2, 1, -3, 4, -1, 2, 1, -5, 4]) # should be 6: [4, -1, 2, 1]

按照一般思想,代码如下

def maxSequence(arr): max=0 for i in range(len(arr)): for n in range(i+1,len(arr)+1): s=sum(arr[i:n]) print arr[i:n] if (s>max): max=s return max

但是有更好的方法,一次循环嵌套就可以达到目的

def maxSequence(arr): max,curr=0,0 for x in arr: curr+=x if curr<0:curr=0 if curr>max:max=curr return max
转载请注明原文地址: https://www.6miu.com/read-2624494.html

最新回复(0)