2
public boolean isPossible(int[] nums) {3
Map<Integer, Integer> possibility = new HashMap<>();4
Map<Integer, Integer> counts = new HashMap<>();6
counts.put(num, counts.getOrDefault(num, 0) + 1);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);20
counts.put(num, counts.get(num) - 1);