個區間若能合併,則第乙個區間的右端點一定不小於第二個區間的左端點。所以先把區間集合按照左端點從小到大進行排序,接著從第乙個區間開始遍歷,對每個區間執行如下操作:
1.首先儲存該區間的左端點start和右端點end;
3.若當前區間不再滿足合併條件或者遍歷到了集合末尾,就構建新合併區間,其中左端點為初始區間的左端點,右端點為當前所有合併區間右端點的最大值,然後將其加入到結果集合中,接著合併下乙個區間;
#definition for an interval.
#class interval:
#def __init__(self, s=0, e=0):
#self.start = s
#self.end = e
class
solution(object):
defmerge(self, intervals):
""":type intervals: list[interval]
:rtype: list[interval]
"""if intervals ==:
return
intervals = sorted(intervals,key=lambda
x:x.start)
res =
tmp =intervals[0]
for i in range(1,len(intervals)):
if tmp.end >=intervals[i].start:
tmp.end =max(tmp.end,intervals[i].end)
else
: tmp =intervals[i]
return 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 合併區間
q 給出乙個區間的集合,請合併所有重疊的區間。示例 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 可被視為重疊區間。a 按s...