题目
1 | 给出一个区间的集合,请合并所有重叠的区间。 |
题解
其实这道题还是很快想到办法的,两个区间的位置关系就三种
第一种 无交集
1 | 1--2--3--4--5--6--7--8--9 |
第二种 部分相交
1 | 1--2--3--4--5--6--7--8--9 |
第三种 包含
1 | 1--2--3--4--5--6--7--8--9 |
因此,只需要理清这三种关系中,每个区间的左右两个端点的值的大小关系就能解出这道题了。
为了能够一次遍历实现区间合并,还需要对参数intervals
进行一些操作,利用lambda
表达式设置排序的比较对象,使得元素排序根据区间的左端点的大小进行升序排序,然后就按上面的三种情况进行仔细区分分析就可以了
AC代码
1 | class Solution(object): |