合併區間 排序解決

2021-10-05 02:48:40 字數 793 閱讀 8913

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

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

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

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

public

int[

]merge

(int

intervals)

看完題目,首選想到的應該是,這個給定的區間是按照順序給出的嘛,也就是說左端點是不是有序的,很明顯,題目並沒有給出有序性,說明這是不確定的。

既然左端點不是有序排列,那我們確定重複區間就比較耗時間了,為什麼呢?

因為小區間,或者說左端點可能出現在陣列的任何位置,我們每一次都需要去遍歷整個陣列,這擔當然是不划算的,所以我們應該先對陣列排序,按照左端點公升序

這樣,我們就只需要維護乙個結果陣列,保證:

class

solution

else

}return res.

toarray

(new

int[res.

size()

]);}

}

鳳凰涅槃之時,大局沖洗之日

atfwus --writing by 2020–04–16

LeetCode 合併區間 排序

給出乙個區間的集合,請合併所有重疊的區間。示例 1 輸入 intervals 1,3 2,6 8,10 15,18 輸出 1,6 8,10 15,18 解釋 區間 1,3 和 2,6 重疊,將它們合併為 1,6 示例2 輸入 intervals 30,80 1,15 1,100 輸出 1,100 解...

陣列與排序 合併區間

給出乙個區間的集合,請合併所有重疊的區間。示例 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 可被視為重疊區間。class ...

排序 中等 56 合併區間

題目 以陣列 intervals 表示若干個區間的集合,其中單個區間為 intervals i starti,endi 請你合併所有重疊的區間,並返回乙個不重疊的區間陣列,該陣列需恰好覆蓋輸入中的所有區間。示例 1 輸入 intervals 1,3 2,6 8,10 15,18 輸出 1,6 8,1...