题解 | #连续最大和#
连续最大和
http://www.nowcoder.com/practice/5a304c109a544aef9b583dce23f5f5db
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
vector<int>nums;
int tmp;
for(int i=0;i<n;i++)
{
cin>>tmp;
nums.push_back(tmp);
}
vector<int>dp(n);
int max_val=nums[0];
dp[0]=nums[0];
for(int i=0;i<n;i++)
{
dp[i]=max(dp[i-1]+nums[i], nums[i]);
max_val=max(max_val, dp[i]);
}
cout<<max_val<<endl;
}
return 0;
}
using namespace std;
int main()
{
int n;
while(cin>>n)
{
vector<int>nums;
int tmp;
for(int i=0;i<n;i++)
{
cin>>tmp;
nums.push_back(tmp);
}
vector<int>dp(n);
int max_val=nums[0];
dp[0]=nums[0];
for(int i=0;i<n;i++)
{
dp[i]=max(dp[i-1]+nums[i], nums[i]);
max_val=max(max_val, dp[i]);
}
cout<<max_val<<endl;
}
return 0;
}