最大子段和

洛谷P1115

最大子段和求法: 设 fi 为以 i 为结尾的最大子段和,若 fi1 为负,则 fi=ai ,否则 fi=fi1+ai 。这显然是正确的

#include<bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
int n, a[N], f[N], ans;
int main()
{
	scanf("%d", &n);
	for(int i = 1; i <= n; ++i) scanf("%d", &a[i]);
	ans = f[1] = a[1];
	for(int i = 2; i <= n; ++i){
		f[i] = max(a[i], f[i - 1] + a[i]);
		ans = max(ans , f[i]);
	}
	cout << ans;
	return 0;
}
posted @   Faker_yu  阅读(43)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示