给定整数A1,A2,...,AN(可能有负数),求∑Ak,k从i到j。如果所有整数均为负数,则最大子序列位0。
例如:
输入:
-2, 11, -4, 13, -5, -2
输出:
20
int maxSubSum(int a[], int N)
{
int thisSum, maxSum, i;
thisSum = maxSum = 0;
for(i=0;i<N;i++){
thisSum += a[i];
if (thisSum > maxSum)
maxSum = thisSum;
else if (thisSum < 0)
thisSum = 0;
}
return maxSum;
}