求子数组的最大和
To Find The Maximum sum of sub array
给定一个包含 N 个整数的数组 arr。找到具有最大总和的连续子数组。
输入:
N = 5
arr[] = {1,2,3,-2,5}
输出:
9
解释:
最大子数组和为 9
元素 (1, 2, 3, -2, 5) 其中
是一个连续的子数组。
检查此代码:
from sys import maxint
def maxSubArraySum(a,size):
max_so_far = -maxint - 1
max_ending_here = 0
for i in range(0, size):
max_ending_here = max_ending_here + a[i]
if (max_so_far < max_ending_here):
max_so_far = max_ending_here
if max_ending_here < 0:
max_ending_here = 0
return max_so_far
为了更好地理解,请查看此解释:Kadane's Algorithm
给定一个包含 N 个整数的数组 arr。找到具有最大总和的连续子数组。
输入: N = 5 arr[] = {1,2,3,-2,5} 输出: 9 解释: 最大子数组和为 9 元素 (1, 2, 3, -2, 5) 其中 是一个连续的子数组。
检查此代码:
from sys import maxint
def maxSubArraySum(a,size):
max_so_far = -maxint - 1
max_ending_here = 0
for i in range(0, size):
max_ending_here = max_ending_here + a[i]
if (max_so_far < max_ending_here):
max_so_far = max_ending_here
if max_ending_here < 0:
max_ending_here = 0
return max_so_far
为了更好地理解,请查看此解释:Kadane's Algorithm