-
Notifications
You must be signed in to change notification settings - Fork 0
Maximum Size Subarray Sum Equals k
Tim_Gao edited this page Sep 23, 2016
·
1 revision
public class Solution {
public int maxSubArrayLen(int[] nums, int k) {
if(nums.length == 0){
return 0;
}
int[] sums = new int[nums.length];
sums[0] = nums[0];
for (int i=1; i<nums.length; ++i){
sums[i] = sums[i-1] + nums[i];
}
int maxLen = 0;
HashMap<Integer, Integer> hm = new HashMap<>();
hm.put(0, -1);
for (int i=0; i<sums.length; ++i){
if(hm.containsKey(sums[i]-k)){
maxLen = Math.max(maxLen, i-hm.get(sums[i]-k));
}
if (!hm.containsKey(sums[i])) {
hm.put(sums[i], i);
}
}
return maxLen;
}
}