Maximum Subarray: 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
.
题意:找出给定数组中子数组之和的最大值,子数组中元素是连续的。
思路:采用动态规划的方法。
代码:
public class Solution { public int maxSubArray(int[] nums) { int max = nums[0]; int[] sum = new int[nums.length]; sum[0] = nums[0]; for(int i=1;i<nums.length;i++){ sum[i] = Math.max(nums[i],sum[i-1]+nums[i]); max = Math.max(max,sum[i]); } return max; } }