算法 (连续)子数组的最大和(及起始点)
int getMax(int *a,int size)
{
if(a==NULL||size==0)return -1;
int temp=a[0];
int max=a[0];
int templ;
int l,r;
templ=l=r=0;
for(int i=1;i<size;i++)
{
if(temp>=0)
temp+=a[i];
else{
temp=a[i];
templ=i;// 临时的起点
}
if(temp>max)
{
l=templ;// 得到最大值,临时点扶正
r=i;// 终点
max=temp;
}
}
// cout<<l<<" "<<r<<endl;
return max;
}