算法笔记
1.非连续最大子段和
如果不全为负数,最大子段和所有大于等于0的元素的和;如果全为负数,最大子段和为最大的负数。
2.连续最大子段和
①无长度限制:
例题:
代码:
#include<bits/stdc++.h> using namespace std; #define ll long long int main() { ios::sync_with_stdio(false); int n; ll ans=1ll<<63,now=0; cin>>n; while(n--) { int a; cin>>a; now+=a; if(now>ans)ans=now; if(now<0)now=0; } cout<<ans<<endl; return 0; }