题解 | #最大序列和#

最大序列和

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

#include<cstdio>
#include<iostream>
#include<climits>
using namespace std;
#define N 1000000
long long a[N + 1];
long long dp[N + 1];
long long maxsub(int n) {
    long long maximun = -INT_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]);
        }
        maximun =  max(maximun, dp[i]);
    }
    return  maximun;
}
int main() {
    int n;
    while (scanf("%d", &n) != EOF) {
        for (int i = 0 ; i < n ; ++i) {
            scanf("%lld", &a[i]);
        }
        long long answer = maxsub(n);
        printf("%lld\n", answer);
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-24 13:39
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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