算法过程
- 按照左区间对数组进行排序
- 创建数组
res
用于存储最终结果以及比对是否与下一个区间是否有重叠,判断条件为前一个区间的有区间是否大于后一个区间的左区间res[-1][1] < interval[0]
- 如果没有重叠就放入新数组
res
否则将该区间与上一个区间进行合并
代码
class Solution:
def merge(self, intervals: List[List[int]]) -> List[List[int]]:
intervals.sort(key=lambda x: x[0])
res = []
for interval in intervals:
if not res or res[-1][1] < interval[0]:
res.append(interval)
else:
res[-1][-1] = max(res[-1][-1], interval[1])
return res