题解 | #最大连续子序列#

最大连续子序列

https://www.nowcoder.com/practice/afe7c043f0644f60af98a0fba61af8e7

#include <algorithm>
#include <iostream>
using namespace std;

int main() {
    int k;
    while(cin>>k && k!=0){
        int b[k];
        int a[k];
        for(int i=0;i<k;i++){
            scanf("%d",&b[i]);
            a[i]=b[i];
        }
        int maxnum=0;
        int positive=0;
        for(int i=0;i<k;i++){
            if(a[i]>=0) positive=1;
            if(i==0) continue;
            a[i]=max(a[i-1]+a[i], a[i]);
            if(a[i]>a[maxnum]) maxnum=i;
        }
        if(positive==0) {
            cout<<"0"<<' '<<a[0]<<' '<<a[k-1]<<endl;
            continue;
        }
        int begin=maxnum;
        for(int i=maxnum-1;i>=0;i--){
            if(a[i]>=0) begin=i;
            else break;
        }
        cout<<a[maxnum]<<' '<<b[begin]<<' '<<b[maxnum]<<endl;

    }
}

全部评论

相关推荐

04-28 11:34
西北大学 运营
牛客4396号:不好意思,这个照片猛一看像丁真
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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