中等
陣列
給出乙個區間的集合,請合併所有重疊的區間。
輸入: [[1,3],[2,6],[8,10],[15,18]]
輸出: [[1,6],[8,10],[15,18]]
解釋: 區間 [1,3] 和 [2,6] 重疊, 將它們合併為 [1,6].
輸入: [[1,4],[4,5]]
輸出: [[1,5]]
解釋: 區間 [1,4] 和 [4,5] 可被視為重疊區間。
from typing import list
# 26.9%
# 執行用時:64 ms
# 記憶體消耗:14.5 mb
class
solution
:def
merge
(self, intervals: list[list[
int]])
-> list[list[
int]]:
i =1 intervals.sort(key=
lambda x: x[0]
)while i <
len(intervals)
:if intervals[i-1]
[1]>= intervals[i][0
]:intervals[i-1]
[1]=
max(intervals[i-1]
[1], intervals[i][1
])intervals.pop(i)
else
: i +=
1return intervals
# 83%
# 執行用時:48 ms
# 記憶體消耗:14.4 mb
class
solution
:def
merge
(self, intervals: list[list[
int]])
-> list[list[
int]]:
if intervals:
intervals.sort(key=
lambda x: x[0]
) i =
1while i <
len(intervals)
:if intervals[i-1]
[1]>= intervals[i][0
]:intervals[i-1]
[1]= intervals[i-1]
[1]if intervals[i-1]
[1]>= intervals[i][1
]else intervals[i][1
] intervals.pop(i)
else
: i +=
1return intervals
s = solution(
)ret = s.merge([[
1,3]
,[2,
6],[
8,10]
,[15,
18]])
print
(ret)
ret = s.merge([[
1,4]
,[4,
5]])
print
(ret)
ret = s.merge([[
1,4]
,[0,
4]])
print
(ret)
ret = s.merge([[
1,4]
,[0,
0]])
print
(ret)
ret = s.merge([[
1,4]
,[0,
2],[
3,5]
])print
(ret)
排序 中等 56 合併區間
題目 以陣列 intervals 表示若干個區間的集合,其中單個區間為 intervals i starti,endi 請你合併所有重疊的區間,並返回乙個不重疊的區間陣列,該陣列需恰好覆蓋輸入中的所有區間。示例 1 輸入 intervals 1,3 2,6 8,10 15,18 輸出 1,6 8,1...
56 合併區間(中等題)
題目描述 給出乙個區間的集合,請合併所有重疊的區間。示例 1 輸入 1,3 2,6 8,10 15,18 輸出 1,6 8,10 15,18 解釋 區間 1,3 和 2,6 重疊,將它們合併為 1,6 示例 2 輸入 1,4 4,5 輸出 1,5 解釋 區間 1,4 和 4,5 可被視為重疊區間。c...
Leecode刷題筆記 56 合併區間
題目要求 給出乙個區間的集合,請合併所有重疊的區間。示例 1 輸入 1,3 2,6 8,10 15,18 輸出 1,6 8,10 15,18 解釋 區間 1,3 和 2,6 重疊,將它們合併為 1,6 示例 2 輸入 1,4 4,5 輸出 1,5 解釋 區間 1,4 和 4,5 可被視為重疊區間。思...