题解 | #求连续子数组的最大和#

求连续子数组的最大和

http://www.nowcoder.com/practice/8705437354604a7cb9ba7bf959e42de6

include<stdio.h>

int max(int a,int b){
return a>b?a:b;
}
int main(){
int in[10000];
int n=0;
bool isAll_=true;
do{
scanf("%d", &in[n++]);
if(in[n-1]>0) isAll_=false;
}while(getchar()!='\n');

if(isAll_) printf("0\n");
else{
    int dp;//dp[j]是必须包含元素in[j]的向前连续延申的最大子段和
    dp=in[0]>0?in[0]:0;
    int maxv=dp;
    for(int i=2;i<=n;i++){
        if(dp>0) dp+=in[i-1];
        else dp=in[i-1];
        if(maxv<dp) maxv=dp;
    }
    printf("%d\n", maxv);
}

}

全部评论

相关推荐

05-09 12:23
已编辑
华南理工大学 Java
野猪不是猪🐗:给他装的,双九+有实习的能看的上这种厂我直接吃⑨✌们拿它练练面试愣是给他整出幻觉了
点赞 评论 收藏
分享
后来123321:别着急,我学院本大二,投了1100份,两个面试,其中一个还是我去线下招聘会投的简历,有时候这东西也得看运气
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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