LeetCode – Maximum Size Subarray Sum Equals k (Java)
Given an array nums and a target value k, find the maximum length of a subarray that sums to k. If there isn't one, return 0 instead.
Note:
The sum of the entire nums array is guaranteed to fit within the 32-bit signed integer range.
Example 1:
Given nums = [1, -1, 5, -2, 3], k = 3,
return 4. (because the subarray [1, -1, 5, -2] sums to 3 and is the longest)
Java Solution
This problem is similar to Maximum Sum of SubArray Close to K.
public int maxSubArrayLen(int[] nums, int k) { HashMap<Integer, Integer> map = new HashMap<>(); map.put(0, -1); int result = 0; int sum = 0; for(int i=0; i<nums.length; i++){ sum += nums[i]; if(map.containsKey(sum - k)){ result = Math.max(result, i - map.get(sum - k)); } map.putIfAbsent(sum, i); } return result; } |
<pre><code> String foo = "bar"; </code></pre>
-
ryanlr
-
Pranav Saxena
-
Zihan Jiao
-
Alan Jeferson