给定整数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;
}
本文介绍了一种寻找整数序列中最大子序列和的算法实现。通过遍历数组并使用动态规划思想,该算法能够有效地找出给定序列中的最大连续子序列之和,并将结果返回。若所有数均为负数,则最大子序列和为0。
846

被折叠的 条评论
为什么被折叠?



