Divide Array in Sets of K Consecutive Numbers LeetCode solution in Java

1
class Solution {
2
public boolean isPossibleDivide(int[] nums, int k) {
3
if (nums.length % k != 0) return false;
4
Map<Integer, Integer> countMap = new HashMap<>();
5
for (int num : nums) {
6
int count = countMap.getOrDefault(num, 0);
7
countMap.put(num, count + 1);
8
}
9
Arrays.sort(nums);
10
for (int num : nums) {
11
if (!countMap.containsKey(num)) continue;
12
int count = countMap.get(num);
13
if (count == 1) countMap.remove(num);
14
else countMap.put(num, count - 1);
15
for (int i = 1; i < k; i++) {
16
int next = num + i;
17
if (!countMap.containsKey(next)) return false;
18
count = countMap.get(next);
19
if (count == 1) countMap.remove(next);
20
else countMap.put(next, count - 1);
21
}
22
}
23
return true;
24
}
25
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0