Skip to content

Latest commit

 

History

History
39 lines (29 loc) · 878 Bytes

1296. 划分数组为连续数字的集合.md

File metadata and controls

39 lines (29 loc) · 878 Bytes
  • 哈希表 + 排序
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;
}