题解 | 最大序列和

最大序列和

https://www.nowcoder.com/practice/6ff244626ac34f7f8a9f29351cc0853b

#include <stdio.h>

int main() {
    long long a, b,n;
scanf("%lld", &n) ;
long long c[n];
for(int i=0;i<n;i++)
 { 
    scanf("%lld",&c[i]);
    }
    long long partmax, overmax=0,m;
for(long long i=0;i<n;i++)
 { 
   if(c[i]>0) {partmax=c[i];m=i;break;}
    }
long long k;
    for(long long i=m;i<n-1;i++){
        partmax=partmax+c[i+1];k=i+2;
          if(partmax>overmax){overmax=partmax;}
          if(partmax<0&&k<n){partmax=0;}
    }
    long long temp=c[0];
    for(long long j=0;j<n;j++){
if(c[j]>temp)temp=c[j];

    }if(temp<0)overmax=temp;
  printf("%lld",overmax);
    return 0;
}

使用部分最优和全局最优,注意要用long long 类型

全部评论

相关推荐

零零幺零零幺:至少再做一个项目,然后猛投小厂,不然有点难
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务