PAT:Maximum Subsequence Sum编译问题
Maximum Subsequence Sum
Data Structures and Algorithms (English)中有一道关于求最大子列的问题,我通过了一次编译,但写第二次时略有不同,缺不能通过,自己实在找不出问题了。。。
通过编译的代码
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
int a[n];
int i;
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
int sum=0,max=-1,minindex=0,maxindex=n-1;
for(i=0;i<n;i++){
sum+=a[i];
if(sum>max){
max=sum;
maxindex=i;
}
if(sum<0){
sum=0;
}
}
sum=max;
for(i=maxindex;i>=0;i--){
sum-=a[i];
if(sum==0){
minindex=i;
break;
}
}
for(i=minindex-1;i>=0;i--){
sum-=a[i];
if(sum==0){
minindex=i;
}
}
if(max<0){
max=0;
}
printf("%d %d %d",max,a[minindex],a[maxindex]);
return 0;
}
问题代码
我把这段代码
for(i=minindex-1;i>=0;i--){
sum-=a[i];
if(sum==0){
minindex=i;
}
}
修改成了下述代码
for(i=minindex-1;i>=0;i--){
if(a[i]==0){
minindex=i;
}else{
break;
}
}
我可能自我感觉良好。。但确实看不出有什么异样,这哪里的问题呀。。
这个case一直报错。