本题有一种比较简单的解法,直接上代码解释了
#include <iostream>
using namespace std;
const int N=2e5+1;
int a[N];
int main()
{
int n,sum=0,ans=-1e5;//首先将答案初始化为比最小值还小的数,防止答案都是负数
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
sum+=a[i];
if(sum>ans)
ans=sum;//更新答案
if(sum<0)
sum=0;//如果sum小于0的话,其于下一个数相加会让其减小,我们可以归零直接从下一个数开始
}
cout<<ans;
return 0;
}