LeetCode: 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.
SOLUTION 1:
采用滑动窗口解决。sum 如果小于0,置为0,再加上当前值。
然后再与max相比,取大的。 1分钟AC
1 public class Solution { 2 public int maxSubArray(int[] A) { 3 if (A == null || A.length == 0) { 4 return 0; 5 } 6 7 int max = Integer.MIN_VALUE; 8 int sum = 0; 9 10 int len = A.length; 11 for (int i = 0; i < len; i++) { 12 if (sum < 0) { 13 sum = 0; 14 } 15 16 sum += A[i]; 17 max = Math.max(max, sum); 18 } 19 20 return max; 21 } 22 }
https://github.com/yuzhangcmu/LeetCode_algorithm/blob/master/array/MaxSubArray_1220_2014.java
posted on 2014-12-20 20:25 Yu's Garden 阅读(3402) 评论(1) 编辑 收藏 举报