package com.interview.books.leetcodeoj; /** * Created_By: stefanie * Date: 14-12-22 * Time: 下午5:33 */ public class LOJ53_MaximumSubarray { //scan and tracking sum and max, if sum < 0, reset to 0. //if max == 0, return the largest elements in A. public int maxSubArray(int[] A) { int max = 0; int sum = 0; int largest = A[0]; for(int i = 0; i < A.length; i++){ largest = Math.max(largest, A[i]); sum = Math.max(sum + A[i], 0); max = Math.max(max, sum); } return max > 0? max : largest; } }