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,注意解题方法,设置两个变量,current,用来纪录当前值,和Max比较,如果为负,就把它设置为0.
package Leetcode; public class MaximumSubarray { public int maxSubArray(int[] A) { int max=0; int current=0; for(int i=0;i<A.length;i++){ current+=A[i]; if(current>max){ max=current; } if(current<0){ current=0; } } return max; } }