合并区间。给出一个区间的集合,请合并所有重叠的区间。
示例 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 |
|