leetcode - Maximum Subarray
Find the contiguous subarray within an array (containing at least one number) which has the largest sum.
For example, given the array [−2,1,−3,4,−1,2,1,−5,4]
,
the contiguous subarray [4,−1,2,1]
has the largest sum = 6
.
class Solution { public: int maxSubArray(vector<int>& nums) { int tempSum = nums[0]; int maxSum = tempSum; for(int i = 1; i < nums.size(); i++){ if(tempSum < 0) tempSum = nums[i]; else{ tempSum += nums[i]; } if(tempSum > maxSum) maxSum = tempSum; } return maxSum; } };
最大子序列和问题。很经典的问题了。《数据结构与算法分析——C语言描述》 p18