Leetcode 56.合并区间
1 题目描述(Leetcode 题目链接)
给出一个区间的集合,请合并所有重叠的区间。
输入: [[1,3],[3,6],[8,10],[15,18]]
输出: [[1,6],[8,10],[15,18]]
解释: 区间 [1,3] 和 [3,6] 重叠, 将它们合并为 [1,6].
2 题解
题目的解法比较明显,如果一眼看不出来可以在数轴上画一下,其实就是按照区间的左边界排序,然后合并有交集的部分即可。
class Solution:
def merge(self, intervals: List[List[int]]) -> List[List[int]]:
Sort_int = sorted(intervals, key = lambda x: x[0])
retv = []
for i in Sort_int:
if not retv or i[0] > retv[-1][1]:
retv.append(i)
else:
retv[-1][1] = max(i[1], retv[-1][1])
return retv