题解 | #最大序列和#
最大序列和
http://www.nowcoder.com/practice/df219d60a7af4171a981ef56bd597f7b
#include<bits/stdc++.h>
using namespace std;
const int N=1e6+1;
int main()
{
int n,i,s[N];
while(cin>>n)
{
int dp[N];
long long sum=-INT_MAX;
for(i=1;i<=n;i++)
cin>>s[i];
dp[1]=s[1];
for(i=2;i<=n;i++)
{
if(dp[i-1]>=0)
dp[i]=dp[i-1]+s[i];
else
dp[i]=s[i];
}
for(i=1;i<=n;i++)
{
if(dp[i]>sum)
sum=dp[i];
}
cout<<sum<<endl;
}
}
using namespace std;
const int N=1e6+1;
int main()
{
int n,i,s[N];
while(cin>>n)
{
int dp[N];
long long sum=-INT_MAX;
for(i=1;i<=n;i++)
cin>>s[i];
dp[1]=s[1];
for(i=2;i<=n;i++)
{
if(dp[i-1]>=0)
dp[i]=dp[i-1]+s[i];
else
dp[i]=s[i];
}
for(i=1;i<=n;i++)
{
if(dp[i]>sum)
sum=dp[i];
}
cout<<sum<<endl;
}
}