首页 > 代码库 > Leetcode-Maximum Subarray
Leetcode-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
.
Analysis:
We define the state d[i] as the the largest sum we can get for subarrays the end at i. We then have the formula:
if d[i-1]<0, then we will choose to just select A[i] at i, d[i]=A[i]; otherwise d[i]=A[i]+d[i-1];
Solution:
1 public class Solution { 2 public int maxSubArray(int[] A) { 3 int len = A.length; 4 if (len==0) return 0; 5 int[] d = new int[len]; 6 d[0] = A[0]; 7 int max = d[0]; 8 for (int i=1;i<len;i++){ 9 if (d[i-1]<0)10 d[i]=A[i];11 else 12 d[i]=A[i]+d[i-1];13 if (d[i]>max) max = d[i];14 }15 16 return max;17 }18 }
Leetcode-Maximum Subarray
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。