最大子段和

题解:考虑以洛谷P1115 最大子段和_DP为结尾的最大子段和。所以有洛谷P1115 最大子段和_DP_02。最后遍历一遍即可。但是实际上发现可以用两个变量代替。

代码

#include<bits/stdc++.h>

using namespace std;
int a[200100];
int main()
{
#ifndef ONLINE_JUDGE
freopen("input.in","r",stdin);
#endif
int n;
cin>>n;
for(int i = 1; i <= n; ++i) {
cin>>a[i];
}
int sum = a[1], thisSum = 0;
for(int i = 1; i <= n; ++i) {
thisSum += a[i];
if(thisSum > sum)
sum = thisSum;
else if(thisSum < 0)
thisSum = 0;
}
cout<< sum <<endl;
return 0;
}