题解 | #子数组的最大累加和问题#
子数组的最大累加和问题
http://www.nowcoder.com/practice/554aa508dd5d4fefbf0f86e5fe953abd
class Solution { public: /** * max sum of the subarray * @param arr int整型vector the array * @return int整型 */ int maxsumofSubarray(vector<int>& arr) { // write code here /*当前数的与前面所有数(包括当前数)和比较—————大于—————>当前数最大值 *当前数的与前面所有数和比较(包括当前数)—————小于—————>继续累加 * */ if(arr.size()==1)return arr[0]; sum = maxVal = arr[0]; for(int count=1;count<arr.size();count++){ sum = sum + arr[count]; if(sum < arr[count]){ sum = arr[count]; maxVal = arr[count]; }else{ maxVal = max(maxVal,sum); } } return maxVal; } private: int maxVal; int sum; };
```