int MaxSubSum(int arr[],int len)
{
int i;
int MaxSum = 0;
int ThisSum= 0;
for(i=0;i<len;i++)
{
ThisSum+= arr[i];
if(ThisSum > MaxSum)
MaxSum = ThisSum;
/*如果累加和出现小于0的情况,
则和最大的子序列肯定不可能包含前面的元素,
这时将累加和置0,从下个元素重新开始累加 */
else if(ThisSum< 0)
ThisSum= 0;
}
return MaxSum;
}
求连续子数组的最大和问题
最新推荐文章于 2023-03-20 17:02:30 发布