LeetCode 56 合併區間

2022-09-18 03:54:23 字數 790 閱讀 2254

知識點:貪心

以陣列 intervals 表示若干個區間的集合,其中單個區間為 intervals[i] = [starti, endi] 。請你合併所有重疊的區間,並返回乙個不重疊的區間陣列,該陣列需恰好覆蓋輸入中的所有區間。

示例

輸入:intervals = [[1,3],[2,6],[8,10],[15,18]]

輸出:[[1,6],[8,10],[15,18]]

解釋:區間 [1,3] 和 [2,6] 重疊, 將它們合併為 [1,6].

輸入:intervals = [[1,4],[4,5]]

輸出:[[1,5]]

解釋:區間 [1,4] 和 [4,5] 可被視為重疊區間。

這也是區間排程的一類問題,在435題的時候我們的貪心策略是按照end進行排序,在這道題裡,我們按照start進行排序。

在遍歷的過程中,如果當前元素的start>末尾元素的end,那就可以新增了,因為沒重疊;如果當前的start《末尾元素,那就證明重疊了,這時候就需要更新最後元素的右邊界,取原來右邊界和當前元素右邊界的大者。

class solution 

});listlist = new arraylist<>();

for(int inter : intervals)else

}return list.toarray(new int[list.size()]);

}}

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