最大连续子数组之和

#include <iostream>
#include <vector>
using namespace std;

int SumOfMaxSubArray(vector<int> array) {
    if (array.empty()) return 0;
    if (array.size() == 1) return array[0];

    int res = array[0];
    int tmp_sum = 0;

    for (auto x : array) {
        tmp_sum += x;
        if (tmp_sum > res) res = tmp_sum;
        if (tmp_sum <= 0) tmp_sum = 0;
    }

    return res;
}

int main() {
    vector<int> arr1;
    int x;
    while(cin >> x){
        arr1.push_back(x);
    }

    cout << SumOfMaxSubArray(arr1) << endl;
    return 0;
}


测试结果

猜你喜欢

转载自www.cnblogs.com/lsn1024/p/11689914.html