阅读目录
*求数组最大连续子序列之和
1.求数组最大连续子序列之和
一个有N个元素的整型数组arr,有正有负,数组中连续一个或多个元素组成一个子数组,这个数组当然有很多子数组,求子数组之和的最大值。例如:[0,-2,3,5,-1,2]应返回9,[-9,-2,-3,-5,-3]应返回-2。
思路 :在每次元素累加和小于0时,从下一个元素重新开始累加
int Maxsum_ultimate(int * arr, int size)
{
int maxSum = 0;
int sum = 0;
for(int i = 0; i < size; ++i)
{
if(sum < 0)
{
sum = arr[i];
}else
{
sum += arr[i];
}
if(sum > maxSum)
{
maxSum = sum;
}
}
return maxSum;
}
网友评论