合并区间。给出一个区间的集合,请合并所有重叠的区间。
示例 1:
1 | |
示例 2:
1 | |
1 | |
思路一
将 intervals 按照 start 升序排列,从左向右遍历,使用tmp 记录当前合并的区间,如果当前 interval 的 start 小于等于当前合并区间的 end,则可以加入到当前合并的区间 tmp 中,tmp 的 start 不变,end 变为 tmp.end 和当前 interval[i].end 的较大值;如果当前 interval 的 start 大于当前合并区间的 end,则当前合并区间可以被添加到结果中,并将当前的 interval 置为新的合并区间。
时间复杂度 \(O(n \log n)\)。
1 | |