def merge(intervals):
"""
:type intervals: List[Interval]
:rtype: List[Interval]
"""
intervals_sorted = sorted(intervals, key=lambda x : x[0])
result = []
for interval in intervals_sorted:
# result中最后一个区间的右值>=新区间的左值,说明两个区间有重叠
if result and result[-1][1] >= interval[0]:
# 将result中最后一个区间更新为合并之后的新区间
result[-1][1] = max(result[-1][1], interval[1])
else:
result.append(interval)
return result
if '__main__' == __name__:
intervals = [['2019-11-18 09:53:10', '2019-12-11 13:57:55'], ['2019-12-10 09:54:35', '2019-12-21 13:57:55'], ['2019-12-23 09:54:35', '2019-12-25 13:57:55']]
print(merge(time2))
通过先按开始时间进行排序,减少了时间的比较次数