#include <stdio.h>
int main(){
int n,sum,max,k,tag;
while(scanf("%d",&n)!=EOF&&n!=0){
int a[n],res[n];
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
k=0;
for(int i=0;i<n;i++){ //记录每个元素开始的最大和
sum=0;
max=-999999;
for(int j=i;j<n;j++){ //从j开始记录后面的最大和
sum+=a[j];
if(sum>max)
max=sum;
}
res[k++]=max;
}
tag=0;
for(int i=0;i<n;i++){ //找出结果中最大的数值
if(res[i]>res[tag])
tag=i;
}
printf("%d\n",res[tag]); //记得要打回车符!!!
}
return 0;
}
最大子串和【浙江工商大学oj】【详细注释版】
最新推荐文章于 2023-10-05 02:53:18 发布