56. Merge Intervals
问题
给定一个区间集合,合并所有重叠区间。
例子:
思路
这个题目的常规做法其实还是挺直观的:
首先,先对列表进行排序,这样区间就会按照起点的大小按序排列。
对于每一个区间,区间的终点有三种情况。
小于下一个区间的起点:直接不用合并。
大于下一个区间的起点,小于下一个区间的终点:取下一个区间的终点。
大于下一个区间的终点:取这个区间的终点。
为了避免索引错位,
intervals[idx]
"蜡炬成灰泪始干",变成了[]
;而intervals[idx+1]
"病树前头万木春",变成了新的大区间。最后,我们"剥茧抽丝",把非空区间取出来返回就好了。
答案
最后更新于