最大子序列的和
时间:2010-11-29 来源:microsoftmvp
#include<iostream>
using namespace std;
//前置条件:n>0为数组a的大小,也就是元素个数
//后置条件:返回最大子序列的和
int MaxSubequenceSum(int *a,int n);
int main()
{
int a[]={-2,11,-4,13,-5,-2};
cout<<MaxSubequenceSum(a,sizeof(a)/sizeof(a[0]))<<endl;
return 0;
}
int MaxSubequenceSum(int *a,int n)
{
asset(a!=NULL);//自己添加的,原书没有
int ThisSum,MaxSum,j;
ThisSum=MaxSum=0;
for(j=0;j<n;j++)
{
ThisSum+=a[j];
if(ThisSum>MaxSum)
{
MaxSum=ThisSum;
}
else if(ThisSum<0)
ThisSum=0;
}
return MaxSum;
}
相关阅读 更多 +