题解 | #DP迭代法实现连续最大和#

连续最大和

http://www.nowcoder.com/practice/5a304c109a544aef9b583dce23f5f5db

#include <bits/stdc++.h>
using namespace std;

int main() {
    int size, num; cin >> size;
    vector<int> numVec(size), accSum(size);
    for (int i=0; i<size; i++) {
        cin >> num;
        numVec[i] = num;
    }
    accSum[0] = numVec[0];
    int maxNum = numVec[0];
    for (int i=1; i<size; i++) {
        if ( accSum[i-1] >= 0 ) {
            accSum[i] = accSum[i-1] + numVec[i];
        } else {
            accSum[i] = numVec[i];
        }
        maxNum = max(maxNum, accSum[i]);
    }
    cout << maxNum;
    return 0;
}
全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

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