合并区间

合并区间

1、题目

图1

2、题解

排序

第一步将列表中的区间按左端点的大小做升序排序,然后将第一个区间加入\(ans\)数组中,并按顺序依次处理之后的区间:

  • 当前区间的左端点在\(ans\)数组中最后一个区间的右端点之后,那们二者不会重合,直接将此区间加入\(ans\)数组的末尾;
  • 反之二者重合,用当前区间的右端点更新\(ans\)数组中最后一个区间的右端点,值为二者的较大值。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution:
def merge(self, intervals: List[List[int]]) -> List[List[int]]:
intervals = sorted(intervals,key=lambda x:x[0])
ans = []

for interval in intervals:

if not ans or ans[-1][1]<interval[0]:
ans.append(interval)
else:
ans[-1][1] = max(ans[-1][1],interval[1])

return ans


合并区间
http://example.com/2024/03/05/合并区间/
作者
Z Z
发布于
2024年3月5日
许可协议