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
.
1 class Solution { 2 public: 3 int maxSubArray(vector<int>& nums) { 4 if(nums.size() == 0){ 5 return 0; 6 } 7 8 int sum = 0; 9 int greatSum = INT_MIN; 10 11 for(int i = 0; i < nums.size() ; i++){ 12 sum += nums[i]; 13 greatSum = max(greatSum, sum); 14 if(sum < 0){ 15 sum = 0; 16 } 17 } 18 return greatSum; 19 } 20 };