leetcode 合併區間
給出乙個區間的集合,請合併所有重疊的區間。
示例 1:
輸入: [[1,3],[2,6],[8,10],[15,18]]示例 2:輸出: [[1,6],[8,10],[15,18]]
解釋: 區間 [1,3] 和 [2,6] 重疊, 將它們合併為 [1,6].
輸入: [[1,4],[4,5]]首先,將各個區間按照開始時間公升序排列,這樣的話,如果相鄰區間出現重疊,則一定是 前乙個區間的結束時間end >= 後乙個區間的開始時間start 。輸出: [[1,5]]
解釋: 區間 [1,4] 和 [4,5] 可被視為重疊區間。
所以,我們首先將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.若當前區間不再滿足合併條件或者遍歷到了集合末尾,就構建新合併區間,其中左端點為初始區...