【最大序列和】清華大學考研複試上機——最大序列和
阿新 • • 發佈:2019-02-14
題目描述
給出一個整數序列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> using namespace std; const int nmax=1000000; const int mmin=-999999999; int main(int argc, char** argv) { int n; while(cin>>n){ long tmp; long sum=0; long mmax=mmin; for(int i=0;i<n;i++){ cin>>tmp; sum=max(sum+tmp,tmp); mmax=max(mmax,sum); } cout<<mmax<<endl; } return 0; }