题解
2023-08-20 14:19:00
发布于:四川
1阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int n,a[105],cnt[105],mx;//mxs是最大值,a是用来存数的,第i个cnt是以a[i]为结尾的最大的子段和
int main(){
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++){
cnt[i]=max(a[i],a[i]+cnt[i-1]);//拿cnt[i-1]与a[i]比较存大的那个,比较是因为上一个可能是负数
mx=max(mx,cnt[i]);//算出最大值拿mx存
}
cout<<mx;//题目说了全是负数就输出0,但是我们一开始把mx定义为0,因为负数比0小所以不用特判
return 0;
}
这里空空如也
有帮助,赞一个