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 numsSize = nums.size(); int preMax = 0; int res = ((unsigned int)(-1)>>1)+1; for(int i=0;i<numsSize;i++){ if(i==0){ preMax = nums[i]; res = nums[i]; }else{ preMax = max(preMax+nums[i],nums[i]); res = max(res,preMax); } } return res; } };