合并区间

以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。

/**
 * @param {number[][]} intervals
 * @return {number[][]}
 */
const merge = (intervals) => {
    intervals.sort((x, y) => x[0] - y[0])
    for (let i = 0; i < intervals.length - 1; i++) {
        const cv = intervals[i]
        const nv = intervals[i + 1]
        if (Math.max(...cv) >= Math.min(...nv)) {
            intervals[i] = [Math.min(...nv, ...cv), Math.max(...nv, ...cv)]
            intervals.splice(i + 1, 1)
            i--
        }
    }
    return intervals
};

  

posted @ 2023-02-19 18:35  671_MrSix  阅读(9)  评论(0编辑  收藏  举报