题目链接:装饰效果
题目思路:从前往后计算连续最大和,遇到和<=0,即把当前和归为0,随时更新最大值
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
int a[1010];
int ans = 0, cnt;
cin >> n;
for(int i = 0; i < n; i++)
{
cin >> a[i];
cnt += a[i]; //当前和
if(cnt < 0)cnt = 0; //如果和小于0,则抛弃之前所有,从新开始加
if(cnt > ans)ans = cnt; //ans随时更新最大值
}
cout << ans <<endl;
return 0;
}