function isPossibleDivide(nums: number[], k: number): boolean {
const map: Map<number, number> = new Map<number, number>();
nums.sort((a, b) => a - b);
for (const num of nums) {
map.set(
num,
(map.get(num) || 0) + 1,
);
}
for (let [key, ] of map) {
if (!map.get(key)) {
continue;
}
let count: number = map.get(key);
const targetKey: number = key + k - 1;
while (key <= targetKey) {
if (!map.has(key) || map.get(key) < count) {
return false;
}
map.set(key, map.get(key) - count);
++key;
}
}
return true;
}