mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-07 15:45:40 +08:00
Update 0056.合并区间.md
This commit is contained in:
@ -141,18 +141,24 @@ class Solution {
|
||||
### Python
|
||||
```python
|
||||
class Solution:
|
||||
def merge(self, intervals: List[List[int]]) -> List[List[int]]:
|
||||
if len(intervals) == 0: return intervals
|
||||
intervals.sort(key=lambda x: x[0])
|
||||
def merge(self, intervals):
|
||||
result = []
|
||||
result.append(intervals[0])
|
||||
if len(intervals) == 0:
|
||||
return result # 区间集合为空直接返回
|
||||
|
||||
intervals.sort(key=lambda x: x[0]) # 按照区间的左边界进行排序
|
||||
|
||||
result.append(intervals[0]) # 第一个区间可以直接放入结果集中
|
||||
|
||||
for i in range(1, len(intervals)):
|
||||
last = result[-1]
|
||||
if last[1] >= intervals[i][0]:
|
||||
result[-1] = [last[0], max(last[1], intervals[i][1])]
|
||||
if result[-1][1] >= intervals[i][0]: # 发现重叠区间
|
||||
# 合并区间,只需要更新结果集最后一个区间的右边界,因为根据排序,左边界已经是最小的
|
||||
result[-1][1] = max(result[-1][1], intervals[i][1])
|
||||
else:
|
||||
result.append(intervals[i])
|
||||
result.append(intervals[i]) # 区间不重叠
|
||||
|
||||
return result
|
||||
|
||||
```
|
||||
|
||||
### Go
|
||||
|
Reference in New Issue
Block a user