牛客 最大序列和 DP

分解思想:dp[i]表示以a[i]结尾的最大连续序列和
最大序列和

#include

using namespace std;

#define ll long long

const int INF = 1e10 + 10;

int main()
{
	ll n;
	while(cin>>n){
		ll ans = -INF;
		vector<ll>dp(n + 1, 0);
		for(int i = 0; i < n; i ++ ) cin>>dp[i];
		for(int i = 1; i < n; i ++ ){
			dp[i] = max(dp[i], dp[i - 1] + dp[i]);
			ans = max(ans, dp[i]);
		} 
		cout<<ans<<endl;
	}
	return 0;
}

你可能感兴趣的:(算法,数据结构)