LeetCode(53):Maximum Subarray

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;
        
    }
}
posted @ 2016-02-19 14:30  Lewisr  阅读(104)  评论(0编辑  收藏  举报