最大连续子数组和
首先定义两个变量maxsum,sum(寻找比maxsum大的连续和) ,遍历数组,max保存i之前的连续最大和,sum记录前面的连续和加上array[i]的大小(当然若sum<0 sum就没有了记录i前连续和的意义,因为sum+array[i]会使后面连续和减小)所以sum 继续从i开始记录连续和。
sum >0?sum+=array[i]:sum=array[i];
maxsum = (maxsum>sum)?maxsum:sum;
int FindGreatestSumOfSubArray(vector<int> array){
if(array.empty())
{
return 0;
}
int sum = array[0];
int maxsum = array[0];
for(int i = 1;i<array.size();i++)
{
if(sum>0)
{
sum = sum + array[i];
}
else
{
sum = array[i];
}
if(maxsum <sum)
{
maxsum = sum;
}
}
return maxsum;
}