1.题目
2.思想
- step 1.对list中的内容进行排序
- step 2.对排序后的内容进行查找重复区间
- 适当的添加数据可以简化逻辑
3.代码
class Solution:
def merge(self, intervals: List[List[int]]) -> List[List[int]]:
# 为方便计算,在其后再添加一个
intervals.append([1e5,1e5])
a =sorted(intervals,key=lambda x:x[0])
res = []
start,end = a[0] # 得到起始终止位
# print(a)
for item in a[1::]:
sa,ea = item
if sa>= start and sa <= end: # 区间可以合并,同时更新start,end
start = min(start,sa)
end = max(end,ea)
else: # 如果不在其中
res.append([start,end]) # 先放值,再更新
start = sa
end = ea
# 再把最后的结果放入其中
# res.append([sa,ea])
# print(res)
return res