53 maximum subarray
https://leetcode.com/problems/maximum-subarray/
class Solution {
public int maxSubArray(int[] nums) {
if (nums.length == 1)
return nums[0];
int[] prefixes = new int[nums.length];
prefixes[0] = nums[0];
int minPrefix = nums[0];
int ans = nums[0];
for (int i = 1; i < nums.length; i++) {
prefixes[i] = prefixes[i - 1] + nums[i];
ans = Math.max(ans, prefixes[i] - minPrefix);
ans = Math.max(ans, prefixes[i]);
minPrefix = Math.min(minPrefix, prefixes[i]);
}
return ans;
}
}Last updated