最大连续子数组和
int MaxSumOfSubsequence(const vector<int>& v) {
if (v.empty()) return -1;
int maxSum = INT_MIN;
int curmax = 0;
for (int i = 0; i < v.size(); ++i) {
curmax = max(curmax + v[i], v[i]);
maxSum = max(maxSum, curmax);
}
return maxSum;
}
最大连续子数组积
//考虑负负得正
int MaxMutilOfSubsequence(const vector<size_t>& v) {
size_t retMax = v[0];
size_t minCur = v[0];
size_t maxCur = v[0];
for (int i = 1; i < v.size(); ++i) {
size_t end1 = maxCur*v[i];
size_t end2 = minCur*v[i];
maxCur = max(max(end1,end2),v[i]);
minCur = min(min(end1,end2),v[i]);
retMax = max(retMax, maxCur);
}
return retMax;
}