問題:
輸入: [[1,3],[2,6],[8,10],[15,18]]
輸出: [[1,6],[8,10],[15,18]]
解釋: 區間 [1,3] 和 [2,6] 重疊, 將它們合併為 [1,6].
解題思路:
為了將不同區間合併,我們需要判斷兩區間內是否存在重疊關係,比如 區間 [1,3] 和 [2,6]中,2與3重疊。判斷方法為比較兩區間左右兩邊邊界數字的大小。對區間i和j:
如果 具體**(搬運自leecode官方結題):
classsolution:defmerge(self, intervals):
intervals.sort(key=lambdax: x[0])
merged =forintervalinintervals:# 如果列表為空,或者當前區間與上一區間不重合,直接新增
merged[-1][1] = max(merged[-1][1], interval[1])returnmerged
list=[[1,3],[2,6],[8,10],[15,18]]
s = solution()
print(s.merge(list))
**執行結果為
圖1 合併區間**執行結果
LeeCode 中等 陣列 56 合併區間
中等陣列 給出乙個區間的集合,請合併所有重疊的區間。輸入 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...
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 可被視為重疊區間。思...
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 可被視為重疊區間。思路 注釋 ...