2 - 最大サブシーケンスSum-計画問題の複雑さ01-

2 - 最大サブシーケンスSum-計画問題の複雑さ01-

問題解決のためのコードを

#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=a[0],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;
        }
    }
    int m=max;
    for(i=maxindex;i>=0;i--){
        m-=a[i];
        if(m>0){
        	minindex=i;
		}else{
			minindex=i;
			break;
		}
    }
    for(i=minindex-1;i>=0;i--){
    	m-=a[i]; 
    	if(m==0)
    	minindex=i;
	}
    if(max<0){
    	max=0;
	}
    	printf("%d %d %d",max,a[minindex],a[maxindex]);
        return 0;

}

テスト結果

ここに画像を挿入説明

仕上げ問題

公開された10元の記事 ウォンの賞賛0 ビュー97

おすすめ

転載: blog.csdn.net/Aruasg/article/details/104792942