/** * https://leetcode.cn/problems/merge-intervals/?envType=study-plan-v2&envId=top-interview-150 * @param {number[][]} intervals * @return {number[][]} */ const merge = function (intervals) { }; /* 思路,先对intervals按照左区间进行排序,之后遍历所有区间,如果当前区间在result中不存在就把它加入到 reslut中,如果result中存在区间并且result的最后一个区间的右区间小于当前区间的左区间,直接把当前区间加入 到reslut,否则合并区间,右边界取两个区间中较大的值 */ function f1(intervals) { intervals.sort((a, b) => a[0] - b[0]); // 按照左区间从小到大排序 const result = []; for (let i = 0; i < intervals.length; i++) { if (result.length === 0 || result[result.length - 1][1] < intervals[i][0]) { result.push(intervals[i]); } else { result[result.length - 1][1] = Math.max(result[result.length - 1][1], intervals[i][1]); } } return result; }