leetcode-53-Maximum Subarray

Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum.

Example:

1
2
3
Input: [-2,1,-3,4,-1,2,1,-5,4],
Output: 6
Explanation: [4,-1,2,1] has the largest sum = 6.

Follow up:

If you have figured out the O(n) solution, try coding another solution using the divide and conquer approach, which is more subtle.

1
2
3
4
5
6
7
8
9
10
11
class Solution {
public int maxSubArray(int[] nums) {
int maxret = nums[0], maxcur = nums[0];
for(int i=1; i<nums.length; i++)
{
maxcur = Math.max(maxcur+nums[i], nums[i]);
maxret = Math.max(maxret, maxcur);
}
return maxret;
}
}
Donate? comment?