int MaxSubseqSum(int A[], int N)
{
int thisSum, maxSum;
int 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;
}