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

最大连续子序列

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

#include <bits/stdc++.h>


using namespace std;

const int MAXN = 1e4 + 10;

int arr[MAXN];
int dp[MAXN];

int main() {
    int n;
    while (scanf("%d", &n) != EOF) {
        if (n == 0) {//当K为0时,输入结束,该用例不被处理。
            break;
        }
        //输入
        for (int i = 0; i < n; ++i) {
            scanf("%d", &arr[i]);
        }
        int maximum = INT_MIN;
        int start;
        int last;
        int head;//输出时第一个
        int tail;//输出时最后一个
        for (int i = 0; i < n; ++i) {//找连续的正数出现。。。
            if (i == 0 || dp[i - 1] < 0) {
                dp[i] = arr[i];
                start = arr[i];
                last = arr[i];
            } else {//大于零的,累加
                dp[i] = dp[i - 1] + arr[i];
                last = arr[i];
            }
            if (maximum < dp[i]) {
                maximum = dp[i];
                head = start;
                tail = last;
            }
        }
        if (maximum < 0) {//当K为0时,输入结束,该用例不被处理。
            maximum = 0;
            head = arr[0];
            tail = arr[n - 1];
        }
        printf("%d %d %d\n", maximum, head, tail);
    }
    return 0;
}

全部评论

相关推荐

兄弟们,绩效自评一定得给自己打A啊!千万别谦虚给低分,不然领导正愁给谁高分,你这不就“主动请缨”了嘛,而且多数领导不会给你更高分。我几年前试用期绩效自评打了B,领导就给了同等级,还好是试用期。真别等领导主动给高评价!
准备进厂的劳伦斯很迷人:小学时候有个册子 自评 小组 老师 我谦虚打了个b 小组别人给我打b 老师来句我觉得能给他打a 但是小组长说他自评是b怎么能打高呢 那时候我才明白的道理
点赞 评论 收藏
分享
2024-12-27 13:08
华南理工大学 Java
蝴蝶飞出了潜水钟丿:多看一眼就会💥
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务