int Left,Right;//记录最大子列和的左右端/全局变量
int MaxSubsequenceSum(int a[],int N)
{
int sum=0; int maxsum=0;
Left=0;Right=N-1;
int count=0; /*记录当前最大子列和元素数*/
for(int i=0;i<N;i++){
sum+=a[i];
count++;
if(maxsum<sum){
maxsum=sum;
Right=i;
Left=Right-count+1; /*通过Right和元素数count来确定Left*/
}
else if(sum<0) {sum=0;count=0;}
else if(sum==0){ /*负数和0的情况 */
if(i<Right){
Right=i;Left=Right;}
}
return maxsum;
}
Maximum Subsequence Sum
最新推荐文章于 2022-07-15 14:20:26 发布