题解 | #最大序列和#

最大序列和

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

#include <iostream>

using namespace std;

long long a[1000001];
long long dp[1000001];

long long maxsubsequence(int n) {
    long long maxinum = -INT32_MAX;
    for (int i = 0; i < n; i++) {
        if (i == 0) {
            dp[i] = a[i];  //只有一个元素,必然是最大连续子序列
        } else {
            dp[i] = max(a[i], a[i] + dp[i - 1]);
        }
        if (dp[i] > maxinum) {
            maxinum = dp[i];
        }
    }
    return maxinum;
}

int main() {
    int n;
    while (scanf("%d", &n) != EOF) {
        for (int i = 0; i < n; i++) {
            scanf("%lld", &a[i]);
        }
        long long ans = maxsubsequence(n);
        printf("%lld\n", ans);

    }
    return 0;
}

全部评论

相关推荐

头顶尖尖的程序员:我是26届的不太懂,25届不应该是找的正式工作吗?为什么还在找实习?大四还实习的话是为了能转正的的岗位吗
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-11 11:00
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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