56 合併區間Leetcode

2021-08-31 03:42:22 字數 1087 閱讀 5846

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

示例 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. 將每個區間按照start排序,在排序之後很容易看出那兩個區間是重合的

*2. 如果前乙個區間的end大於或者等於後乙個區間的start,說明這兩個區間是重合的

*3. 採用這樣的方式合併兩個區間:取第乙個區間的start,兩個區間中較大的那個end作為新的區間

*4. 設乙個temp等於第乙個區間,遍歷剩下的區間,如果遇到重疊的,則將temp更新為merge以後的區間

*5. 這是還不要把merge加入到list中,因為有可能下乙個區間和merge是有重疊的

*6. 直到遇到下乙個區間內和temp不發生重疊的時候,將temp加入到list裡面

*7. temp的值被賦為下乙個區間

* * definition for an interval.

* public class interval

* interval(int s, int e)

* }*/class

solution})

;

interval temp = intervals.

get(0)

;//如果intervals中只有乙個元素

if(intervals.

size()

==1)for

(int i =

1; i < intervals.

size()

; i++

)else

} res.

add(temp)

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