求最大的子数组之和 给一串数组,求出它元素之和最大的子数组 例如 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 赞微海报分享
近期评论