Description:
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
.
Code:
int maxSubArray(vector<int>& nums) { if (nums.size()!=0) return INT_MIN; int maxValue = nums[0] ; int temp = nums[0]; for (int i = 1; i < nums.size(); ++i) { temp += nums[i]; if (temp > maxValue) maxValue = temp; if (temp < 0) { temp = 0; } } return maxValue; }
总结:
做起来不是很顺,只有大概思路,主要是上述代码中两个if的处理不能很快理清。