Maximum Number of Non-Overlapping Subarrays With Sum Equals Target LeetCode solution in Java

1
class Solution {
2
public int maxNonOverlapping(int[] nums, int target) {
3
Map<Integer, Integer> valToPos = new HashMap<>();
4
int sums = 0;
5
int count = 0;
6
int lastEndPos = 0;
7
valToPos.put(0, 0);
8
for (int i = 0; i < nums.length; i++) {
9
sums += nums[i];
10
int pos = valToPos.getOrDefault(sums - target, -1);
11
if (pos >= lastEndPos) {
12
count += 1;
13
lastEndPos = i + 1;
14
}
15
valToPos.put(sums, i + 1);
16
}
17
return count;
18
}
19
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0