/* @param: int[] input numbers @return largest sum of subarray Algorithm: 前缀和解法,记录之前计算的最小前缀和,最大和等于 当前前缀和-之前存在的最小前缀和; max = curSum - minSum; */ publicintmaxSubArray(int[] nums){ if (nums == null || nums.length == 0) { return -1; } int res = Integer.MIN_VALUE, minLeft = 0; int sum = 0; for (int i = 0; i < nums.length; i++) { sum += nums[i]; res = Math.max(sum - minLeft, res); minLeft = Math.min(minLeft, sum); } return res; }