計算機考研真題 最大序列和
阿新 • • 發佈:2018-12-03
題目描述
給出一個整數序列S,其中有N個數,定義其中一個非空連續子序列T中所有數的和為T的“序列和”。 對於S的所有非空連續子序列T,求最大的序列和。 變數條件:N為正整數,N≤1000000,結果序列和在範圍(-2^63,2^63-1)以內。輸入描述:
第一行為一個正整數N,第二行為N個整數,表示序列中的數。
輸出描述:
輸入可能包括多組資料,對於每一組輸入資料, 僅輸出一個數,表示最大序列和。示例1
輸入
5 1 5 -3 2 4 6 1 -2 3 4 -10 6 4 -3 -1 -2 -5
輸出
9 7 -1
//計算機考研真題 最大序列和 /* 程式設計思想: 這道題之前做過,看另一種巧的解法。 */ //程式實現: #include<iostream> #include<algorithm> using namespace std; int main(){ int N=0,i=0; while(cin>>N){ int sum=0,Max=-9999999,x=0;for(i=0;i<N;i++){ cin>>x; sum=max(sum+x,x); Max=max(Max,sum); } cout<<Max<<endl; } return 0; }