Bootstrap

蓝桥杯备考:前缀和算法之最大子段和

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;
}

;