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 public class Solution{ 2 public int maxSubArray(int[] nums){ 3 int max = nums[0]; 4 int[] sum = new int[nums.length]; 5 sum[0]=nums[0]; 6 7 for(int i = 1; i < nums.length; i++){ 8 sum[i]=Math.max(nums[i], sum[i-1]+nums[i]); 9 max = Math.max(sum[i], max); 10 } 11 12 return max; 13 } 14 }