01-复杂度1 最大子列和问题

#include <cstdio>
const int MAXN = 1e5 + 2;


int MaxSubseqSum(int a[], int n) {
    int ThisSum = 0, MaxSum = 0;
    
    for (int i=0; i<n; i++) {
        ThisSum += a[i];
        if (ThisSum > MaxSum) {
            MaxSum = ThisSum;
        }
        else if (ThisSum < 0) {
            ThisSum = 0;
        }
    }
    
    
    
    
    return MaxSum;
}











int main() {
    int k, a[MAXN];
    scanf("%d", &k);
    
    for (int i=0; i<k; i++) {
        scanf("%d", &a[i]);
    }
    
    int MaxSum = MaxSubseqSum(a, k);
    
    printf("%d\n", MaxSum);
    
    
    
    
    return 0;
}

  

posted @ 2019-05-28 10:13  Acoccus  阅读(166)  评论(0编辑  收藏  举报