题解 | #最大序列和#

最大序列和

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

#include <cstdio>
#include <iostream>

using namespace std;

const int MAX=1000000;

long long arr[MAX];
long long dp[MAX];

long long MAXSubSequence(int n){
    long long maxSum=0;
    
    for(int i=0;i<n;i++){
        if(i==0){
            dp[i]=arr[i];
        }else{
            dp[i]=max(arr[i],dp[i-1]+arr[i]);
        }
        maxSum=max(maxSum,dp[i]);
    }
    return maxSum;
}

int main(){
    int n;
    while(scanf("%d",&n)!=EOF){
        if(n==0){
            break;
        }
        for(int i=0;i<n;i++){
            scanf("%lld ",&arr[i]);
        }
        long long answer=MAXSubSequence(n);
        printf("%lld\n",answer);
    }
    return 0;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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