1
class Solution {
2
public boolean isPossible(int[] nums) {
3
Map<Integer, Integer> possibility = new HashMap<>();
4
Map<Integer, Integer> counts = new HashMap<>();
5
for (int num : nums) {
6
counts.put(num, counts.getOrDefault(num, 0) + 1);
7
}
8
for (int num : nums) {
9
if (counts.get(num) == 0) continue;
10
if (possibility.getOrDefault(num, 0) > 0) {
11
possibility.put(num, possibility.getOrDefault(num, 0) - 1);
12
possibility.put(num + 1, possibility.getOrDefault(num + 1, 0) + 1);
13
} else if (counts.getOrDefault(num + 1, 0) > 0 && counts.getOrDefault(num + 2, 0) > 0) {
14
possibility.put(num + 3, possibility.getOrDefault(num + 3, 0) + 1);
15
counts.put(num + 1, counts.getOrDefault(num + 1, 0) - 1);
16
counts.put(num + 2, counts.getOrDefault(num + 2, 0) - 1);
17
} else {
18
return false;
19
}
20
counts.put(num, counts.get(num) - 1);
21
}
22
return true;
23
}
24
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0