P1115 最大子段和 - 洛谷 | 计算机科学教育新生态
我们枚举以a[i]为结尾的子段,找出最大的子段
#include <iostream>
using namespace std;
const int N = 2e5+10;
int a[N],f[N];
int main()
{int n;cin >> n;for(int i = 1;i<=n;i++){cin >> a[i];f[i] = f[i-1] + a[i];}int ret = -2e5+10;int premin = 0;for(int i = 1;i<=n;i++){ret=max(ret,f[i]-premin);premin = min(premin,f[i]);}cout << ret << endl;return 0;
}