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);9
for (const num of nums) {10
const current = hash.get(num);11
if (current === 0) continue;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);28
hash.set(num, current - 1);