蓝桥杯备考:贪心算法之最大字段和

蓝桥杯备考:贪心算法之最大字段和_第1张图片

先说,贪心策略,贪心策略就是我们从头开始选数,如果是正的说明对后面有贡献就继续往后加,如果是负的就舍弃这一段,从下一个开始往后加,

蓝桥杯备考:贪心算法之最大字段和_第2张图片

#include 
using namespace std;
int sum;
const int N = 2e5+10;
int a[N];
int main()
{
	int n;cin >> n;
	int ret = -1e6;
	for(int i = 1;i<=n;i++)
	{
		cin >> a[i];
		sum+=a[i];
		ret = max(sum,ret);
		if(sum<0)
		{
			sum = 0;
		}
		
	}
	cout << ret << endl;
}

代码很简单,我们来证明一下我们的贪心策略蓝桥杯备考:贪心算法之最大字段和_第3张图片

证毕.

你可能感兴趣的:(贪心算法,算法)