牛客 最大序列和 DP

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

cpp 复制代码
#include<bits/stdc++.h>

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;
}
相关推荐
数智化精益手记局5 分钟前
拆解红牌作战的步骤:掌握红牌作战的步骤,解决现场管理难题
大数据·数据结构·人工智能·制造·精益工程
喜欢吃燃面8 分钟前
Linux 信号保存机制深度解析:从内核数据结构到进程状态管理
linux·运维·数据结构·学习
Via_Neo11 分钟前
区间dp算法
开发语言·javascript·算法
amcomputer11 分钟前
简单总结拉格朗日乘数法
算法
hi_ro_a13 分钟前
C++ 手撕 STL 底层:红黑树封装 mymap/myset
数据结构·c++·算法
求学的小高15 分钟前
数据结构Day9(图的遍历、图应用及相关算法)
数据结构·笔记·考研
tankeven22 分钟前
贪心算法(Greedy Algorithm)详解:从理论到C++实践
c++·算法
Hesionberger22 分钟前
LeetCode72.编辑距离(多维动态规划)
java·开发语言·c++·python·算法
lwf00616424 分钟前
逻辑回归学习笔记-梯度下降求解回归方程
算法·机器学习·逻辑回归
人道领域30 分钟前
【LeetCode刷题日记】1047:双栈法与双指针法巧妙消除相邻重复字符
java·算法·leetcode·职场和发展