#include <cstdio>
#include <algorithm>
using namespace std;
const int MAXN = 4000;
int main() {
int n, number[MAXN], dp[MAXN];
scanf("%d",&n);
for(int i=0; i<n; i++) {
scanf("%d",&number[i]);
}
//边界
dp[0] = number[0];
//状态转移方程
for(int i=1; i<n; i++) {
dp[i] = max(dp[i-1] + number[i], number[i]);
}
//输出
int maxNumber = -MAXN;
for(int i=0; i<n; i++) {
maxNumber = max(maxNumber, dp[i]);
}
printf("%d\n",maxNumber);
return 0;
}
DP-最大连续子序列和
最新推荐文章于 2024-01-18 15:00:45 发布