题目地址:

https://leetcode.com/problems/maximum-subarray/description/

题目描述:

  经典的求最大连续子数组之和。

解法:

   遍历这个vector,每次循环累加当前数值,同时更新最大值,若当前的累加和是负数,需要更新为0,因为在进行下一次累加求和的时候,

无论下一个数是正还是负,加上上一次的为负的和,都将变得更小,因而下一次求和时直接从当前值开始计算。

代码:

class Solution {
public:
int maxSubArray(vector<int>& nums) {
if (nums.size() == ) {
return nums.at();
} vector<int>::iterator iter = nums.begin();
int max = -( << );
int sum = ;
for ( ; iter != nums.end(); iter++)
{
sum += *iter;
if (sum > max) {
max = sum;
}
if (sum < ) {
sum = ;
}
} return max;
}
};
05-11 11:21