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;} }