只要相加时m[i-1] 大于0 就继续加, 若m[i-1]<0 就直接m[i]=a[i] 从此处重新开始
#include
using namespace std;
int max(int a,int b){
return a>b?a:b;
}
int main(){
int n;
cin>>n;
int a[n];
for(int i=0;i<n;i++)
cin>>a[i];
int m[n];
m[0]=a[0];
for(int i=1;i<n;i++){
if(m[i-1]>0)
m[i]=m[i-1]+a[i];
else m[i]=a[i];
}
int maxn=0;
for(int i=0;i<n;i++)
maxn=max(m[i],maxn);
cout<<maxn;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)