leetcode 56 合併區間 python

2021-10-25 22:18:17 字數 856 閱讀 5655

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

示例 1:

輸入: intervals = [[1,3],[2,6],[8,10],[15,18]]

輸出: [[1,6],[8,10],[15,18]]

解釋: 區間 [1,3] 和 [2,6] 重疊, 將它們合併為 [1,6].

示例 2:

輸入: intervals = [[1,4],[4,5]]

輸出: [[1,5]]

解釋: 區間 [1,4] 和 [4,5] 可被視為重疊區間。

1.思路

首先將給定列表按子列表中的第乙個數字排序,重合的子列表一定是連續的,我們用res表示合併後的列表,首先遍歷原列表,如果res中res[-1][1],小於遍歷的子列表[0],則說明這兩個子列表沒有重合部分,直接將子列表新增到res即可。反之有重合部分,進行合併,將res[-1][1]更新為res[-1][1]和子列表[1]最大值。

**如下(示例):

class solution:

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

intervals.sort(key=lambda x:x[0])

res =

for interval in intervals:

if not res or interval[0] > res[-1][1]:

else:

res[-1][1] = max(res[-1][1], interval[1])

return res

重點就是判斷兩個子列表是否重合

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