本題主要難點是如何將重複的區間合併以及如何將合併好的區間重新插入到陣列中。
結果陣列的構建:定義乙個list用於儲存區間,當區間小於被插入區間時,直接放入list中,並記錄插入元素的下標,改下標最後用於將新構建的區間插入到list中。當原區間與被插入區間有重複時,合併區間,當區間大於被插入區間時,直接放入list中。
合併區間:利用matth工具類求取區間的最大和最小值,當陣列中的區間與被插入區間存在重疊時,更新被插入區間的最大和最小值,然後用更新後的區間進行下一步的判斷。
class
solution
int index=0;
list<
int[
]> res =
newarraylist
<
>()
;for
(int
interval: intervals)
else
if(interval[0]
>newinterval[1]
)else
} res.
add(index, newinterval)
;return res.
toarray
(new
int[res.
size()
][2]
);}}
LeetCode 57 插入區間
幾個注意點 1.原集合為空 2.插入在最開始的位置 3.插入在末尾位置 4.插入在中間 可以通過新增標誌,沒有新增就每次都去判斷重疊情況進行新增 vectorresult if intervals.size 0 bool isadd false for int i 0 i intervals.siz...
leetcode57 插入區間
給出乙個無重疊的 按照區間起始端點排序的區間列表。在列表中插入乙個新的區間,你需要確保列表中的區間仍然有序且不重疊 如果有必要的話,可以合併區間 示例 1 輸入 intervals 1,3 6,9 newinterval 2,5 輸出 1,5 6,9 示例 2 輸入 intervals 1,2 3,...
leetcode 57 插入區間
給出乙個無重疊的 按照區間起始端點排序的區間列表。在列表中插入乙個新的區間,你需要確保列表中的區間仍然有序且不重疊 如果有必要的話,可以合併區間 示例 1 輸入 intervals 1,3 6,9 newinterval 2,5 輸出 1,5 6,9 示例 2 輸入 intervals 1,2 3,...