LeetCode 56 合併區間

2021-10-05 03:15:58 字數 839 閱讀 7833

給出乙個區間的集合,請合併所有重疊的區間。

示例 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] 可被視為重疊區間。

比想象的簡單。

solution:

class solution:

def merge(self, intervals: list[list[int]]) -> list[list[int]]:

i = 0

n = len(intervals)

intervals.sort(key = lambda x:x[0]) #對區間列表按每個區間起始點從低到高排序

while i < n-1: #類似滑動視窗的方法

if intervals[i][1] >= intervals[i+1][0]: #如果符合合併區間的要求時

intervals[i][1] = max(intervals[i][1],intervals[i+1][1]) #對第i個區間的終點進行更新

intervals.pop(i+1) #彈出被合併的區間

n-=1 #將區間總數減一

else: #如果不符合合併區間的條件,則將i置為i+1,進行下一輪的遍歷

i+=1

return intervals

Leetcode 56 合併區間

對所有區間按起點位置進行排序 遍歷到k點後的 l,r 已知的包含k點的最大區間 遍歷到k 1點,若該起點屬於 l,r 那麼可能擴充套件這個區間的終點,r max r,k 1點的end definition for an interval.struct interval interval int s,...

LeetCode 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 可被視為重疊區間。解題思路 1...

LeetCode 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 可被視為重疊區間。題意還是好理...