LeetCode 合併區間

2022-08-28 17:21:24 字數 1383 閱讀 9966

leetcode  合併區間

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

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

首先,將各個區間按照開始時間公升序排列,這樣的話,如果相鄰區間出現重疊,則一定是  前乙個區間的結束時間end >= 後乙個區間的開始時間start 。

所以,我們首先將interval按照開始時間start進行排序。

1

#definition for an interval.2#

class interval:3#

def __init__(self, s=0, e=0):4#

self.start = s5#

self.end = e67

class

solution:

8def

merge(self, intervals):

9"""

10:type intervals: list[interval]

11:rtype: list[interval]

12"""

13 lenint =len(intervals)

14if lenint <= 1:

15return

intervals16#

按照第乙個元素進行排序

17 intervals = sorted(intervals, key=lambda

inter: inter.start)18#

遍歷第二個元素,如果第二個元素的值比下乙個列表的第乙個元素的值大,則合併列表

19 res =

20for temp in

intervals:

21if len(res) ==0:

2223

#如果不衝突,直接加入

24if temp.start > res[len(res)-1].end :

2526

#如果衝突,進行合併

27else

:28 temp2 = res.pop(len(res)-1)

2930

for temp in

res:

31print

(temp.start,temp.end)

32return res

LeetCode 區間合併

區間合併 給出乙個區間的集合,請合併所有重疊的區間。示例 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 可被視為重疊區間。i...

LeetCode 合併區間

給出乙個區間的集合,請合併所有重疊的區間。示例 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 可被視為重疊區間。思路分析 此...

leetcode 區間合併

個區間若能合併,則第乙個區間的右端點一定不小於第二個區間的左端點。所以先把區間集合按照左端點從小到大進行排序,接著從第乙個區間開始遍歷,對每個區間執行如下操作 1.首先儲存該區間的左端點start和右端點end 3.若當前區間不再滿足合併條件或者遍歷到了集合末尾,就構建新合併區間,其中左端點為初始區...