P1115 最大子段和
给出一个长度为 n的序列 a,选出其中连续且非空的一段使得这段和最大。
输入格式
第一行是一个整数,表示序列的长度 n。
第二行有 n 个整数,第 i个整数表示序列的第 i 个数字 a[i]。
输出格式
输出一行一个整数表示答案。
小编暴力枚举和前缀差分都超时了借鉴了一下大佬的解法
#include<limits.h>
#include<bits/stdc++.h>
using namespace std;
int n,a,b,i,ans=INT_MIN;
int main(){
cin>>n;
for(i=1;i<=n;i++){
cin>>a;
if(i==1) b=a;
else b=max(a,a+b);
ans=max(ans,b);
}
cout<<ans;
return 0;
}