public class Solution {
    public int maxSubArray(int[] A) {
        if (A == null)
            return 0;
        int len = A.length;
        if (len < 1)
            return 0;
        int max = Integer.MIN_VALUE, currSum = 0;
        for (int i = 0; i < len; i++) {
            int localMax = currSum + A[i];
            max = localMax >= max? localMax: max;
            currSum = localMax <= 0? 0: localMax;
        }
        return max;
    }
}