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

最大连续子序列

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

#include <iostream>
using namespace std;

const int MAXN = 1e4+10;
int arr[MAXN];
int answer[MAXN];
int Fun(int n){
    int index; //最大值下标
    int maxn = -100000;
    for(int i=0;i<n;i++){
        if(i==0){
            answer[i] = arr[i];
        }else{
            answer[i] = max(arr[i],arr[i]+answer[i-1]);
        }
        if(maxn <answer[i]){
            maxn = answer[i];
            index = i;
        }
    }
    return index;
}
int main() {
    int n;
    while(cin >> n){
        if(n==0){
            break;
        }
        int count = 0;
        for(int i=0;i<n;i++){
            cin>>arr[i];
            if(arr[i]<0){
                count++;
            }
        }
        if(count==n){
            cout<<"0 "<< arr[0]<<" "<<arr[n-1]<<endl;
            continue;
        }
        int index = Fun(n);
        int start = 0;
        int sum = 0;
        for(int i=index;i>=0;i--){
            sum+=arr[i];
            if(sum==answer[index]){
                start = i;
                break;
            }
        }
        cout<<answer[index]<<" "<<arr[start]<<" "<<arr[index]<<endl;
    }

}

全部评论

相关推荐

02-26 15:33
已编辑
西北大学 golang
点赞 评论 收藏
分享
02-24 16:48
已编辑
电子科技大学 Java
宇宙究极无敌耀孝子:如果你计网和算法都还没准备,建议别面。 字节用go多,spring之类问得很少,重点问计网,mysql,redis,穿插点java和操作系统的八股,然后必做算法,两道算法如果都没a出来可以说是必挂。 你取消面试就算有影响凭你的bg秋招肯定还能面,要是一面就脏面评了春招秋招肯定就白瞎了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务