最大连续子数组和

    1. int MaxSumOfSubsequence(const vector<int>& v) {
    2. if (v.empty()) return -1;
    3. int maxSum = INT_MIN;
    4. int curmax = 0;
    5. for (int i = 0; i < v.size(); ++i) {
    6. curmax = max(curmax + v[i], v[i]);
    7. maxSum = max(maxSum, curmax);
    8. }
    9. return maxSum;
    10. }

    最大连续子数组积

    1. //考虑负负得正
    2. int MaxMutilOfSubsequence(const vector<size_t>& v) {
    3. size_t retMax = v[0];
    4. size_t minCur = v[0];
    5. size_t maxCur = v[0];
    6. for (int i = 1; i < v.size(); ++i) {
    7. size_t end1 = maxCur*v[i];
    8. size_t end2 = minCur*v[i];
    9. maxCur = max(max(end1,end2),v[i]);
    10. minCur = min(min(end1,end2),v[i]);
    11. retMax = max(retMax, maxCur);
    12. }
    13. return retMax;
    14. }