程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> nyoj 44 子串和

nyoj 44 子串和

編輯:C++入門知識

nyoj 44 子串和


子串和

時間限制:5000 ms | 內存限制:65535 KB 難度:3
描述
給定一整型數列{a1,a2...,an},找出連續非空子串{ax,ax+1,...,ay},使得該子序列的和最大,其中,1<=x<=y<=n。
輸入
第一行是一個整數N(N<=10)表示測試數據的組數)
每組測試數據的第一行是一個整數n表示序列中共有n個整數,隨後的一行裡有n個整數I(-100= 輸出
對於每組測試數據輸出和最大的連續子串的和。
樣例輸入
1
5
1 2 -1 3 -2
樣例輸出
5
#include
int main()
{
	int N;
	scanf("%d",&N);
	while(N--)
	{
		int max,n,i,sum;
		scanf("%d",&n);
        scanf("%d",&sum);
		max=sum;
		n=n-1;
		while(n--)
		{
			scanf("%d",&i);
			if(sum>=0)
				sum+=i;
			else
				sum=i;
			if(sum>max)
				max=sum;
		}
		printf("%d\n",sum);
	}

	return 0;
}    


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved