连续子数组的最大和(三十)
题目描述
例如: {6,-3,-2,7,-15,1,2,2}
,连续子向量的最大和为 8
(从第 0
个开始,到第 3
个为止)。给一个数组,返回它的最大连续子序列的和.
代码(已在牛客上 AC)
动态规划. res
记录最大和, 而 prev
记录以 nums[i]
结尾的子数组的和.
class Solution {
public:
int FindGreatestSumOfSubArray(vector<int> array) {
if (array.empty()) return 0;
int res = array[0], prev = array[0];
for (int i = 1; i < array.size(); ++i) {
prev = max(prev + array[i], array[i]);
res = max(res, prev);
}
return res;
}
};