【leetcode】56.合并区间js

发布时间:2026/7/10 22:06:22
【leetcode】56.合并区间js 题目代码思路是先对数组进行排序以区间第一个数从小到大排。然后维护一个ans数组先放入第一个区间后续遍历到的区间都要和ans数组里最后一个区间last作比较如果可以合并修改last如果不能合并当前区间直接加入res数组成为下一个last/** * param {number[][]} intervals * return {number[][]} */ var merge function(intervals) { intervals.sort((a, b) a[0] - b[0]) const ans [intervals[0]] for (let i 1; i intervals.length; i) { const last ans[ans.length - 1] if (last[1] intervals[i][0]) { last[1] Math.max(last[1], intervals[i][1]) } else { ans.push(intervals[i]) } } return ans };这里注意数组是引用数据类型所以last并不是复制了一份最后一个区间的副本而是指向了ans数组中那个区间对象的内存地址因此不需要先pop再push。时间复杂度为O(nlogn)。