1
var isPossible = function (nums) {
2
const need = new Map();
3
const hash = nums.reduce((map, num) => {
4
const count = map.get(num) ?? 0;
5
map.set(num, count + 1);
6
return map;
7
}, new Map());
8

9
for (const num of nums) {
10
const current = hash.get(num);
11
if (current === 0) continue;
12

13
const currentNeed = need.get(num);
14
const next1 = hash.get(num + 1);
15
const next2 = hash.get(num + 2);
16
if (currentNeed > 0) {
17
const need1 = need.get(num + 1) ?? 0;
18
need.set(num, currentNeed - 1);
19
need.set(num + 1, need1 + 1);
20
} else if (next1 > 0 && next2 > 0) {
21
const need3 = need.get(num + 3) ?? 0;
22
hash.set(num + 1, next1 - 1);
23
hash.set(num + 2, next2 - 1);
24
need.set(num + 3, need3 + 1);
25
} else {
26
return false;
27
}
28
hash.set(num, current - 1);
29
}
30
return true;
31
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0