Leetcode 56 合併區間

2021-09-28 00:12:07 字數 738 閱讀 9497

先排序,通過後乙個區間的左座標值與前乙個區間的右座標值進行比較,便可以確定是否有重合

class

solution

:def

merge

(self, intervals:

list)-

>

list

:# 先把intervals按照第乙個值進行排序

intervals.sort(

) n =

len(intervals)

if n ==0:

return

result =

[intervals[0]

]for i in

range(1

, n)

:# 此時必有重合,則重合區間的右值為最大的那個(有兩種情況)

#第一種情況[2,5],[3,7] 合併為[2,7]

#第二種情況[2,9],[3,7] 合併為[2,9]

if intervals[i][0

]<= result[-1

][1]

: result[-1

][1]

=max

(result[-1

][1]

, intervals[i][1

])# 無重合則直接新增區間

else:)

return result

參考鏈結

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