题目描述
给出一段序列,选出其中连续且非空的一段使得这段和最大。
【题目分析】
动态规划。
【代码】
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int n,x,ans,s;
scanf("%d",&n);
scanf("%d",&x);
ans=x; s=x;
for (int i=2;i<=n;++i)
{
scanf("%d",&x);
s+=x;
ans=max(ans,s);
s=max(s,0);
}
printf("%d\n",ans);
}
本文介绍了一种使用动态规划求解最大子数组和问题的方法,通过遍历序列并维护当前和最大值,最终找到使连续子序列和最大的那一段。
392

被折叠的 条评论
为什么被折叠?



