Skip to content

Commit c6b4dda

Browse files
committedDec 8, 2020
feat: merge-intervals
1 parent 9e76206 commit c6b4dda

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed
 

‎sort.merge-intervals.py

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
from typing import List
2+
3+
4+
class Solution:
5+
"""
6+
56. 合并区间
7+
https://leetcode-cn.com/problems/merge-intervals/
8+
给出一个区间的集合,请合并所有重叠的区间。
9+
"""
10+
def merge(self, intervals: List[List[int]]) -> List[List[int]]:
11+
# 1. 按照起点排序
12+
res = []
13+
cur = -1
14+
intervals.sort(key=lambda k: k[0])
15+
# 2. 遍历循环
16+
for i in range(len(intervals)):
17+
# 3. 如果第二个值大于前一项的第一个值,则合并区间
18+
if i == 0 or res[cur][1] < intervals[i][0]:
19+
res.append(intervals[i])
20+
cur += 1
21+
else:
22+
res[cur][1] = max(res[cur][1], intervals[i][1])
23+
24+
return res
25+
26+
27+
so = Solution()
28+
print(so.merge([[2,6],[8,10],[15,18],[1,3]]))

‎sort.relative-sort-array.py

+2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ def relativeSortArray(self, arr1: List[int], arr2: List[int]) -> List[int]:
1818
if i == arr1[j]:
1919
arr1[cur], arr1[j] = arr1[j], arr1[cur]
2020
cur += 1
21+
22+
# 快排
2123
self.sortRange(arr1, cur, len(arr1) - 1)
2224
return arr1
2325

0 commit comments

Comments
 (0)
Please sign in to comment.