PAT:Maximum Subsequence Sum编译问题求助

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一直报错。

发布了10 篇原创文章 · 获赞 0 · 访问量 98

猜你喜欢

转载自blog.csdn.net/Aruasg/article/details/104791317