給出乙個區間的集合,請合併所有重疊的區間。
輸入: [[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...