Lintcode30 Insert Interval solution 題解
阿新 • • 發佈:2017-05-08
necessary solution start 記錄 元素
題目描述】
Given a non-overlapping interval list which is sorted by start point.Insert a new interval into it, make sure the list is still in order and non-overlapping (merge intervals if necessary).
給出一個無重疊的按照區間起始端點排序的區間列表。在列表中插入一個新的區間,你要確保列表中的區間仍然有序且不重疊(如果有必要的話,可以合並區間)。
【題目鏈接】
http://www.lintcode.com/en/problem/insert-interval/
【題目解析】
用pos記錄newInterval應該插入的位置。順序遍歷intervals中的元素,若當前interval的end比newInterval的start還小,則將當前interval加入答案,同時pos+1;若比newInterval大,則直接加入答案;若有overlap,則需要merge,newInterval的start取兩者間小的,end取兩者間大的。最後在pos的位置插入newInterval即可。
【參考答案】
http://www.jiuzhang.com/solutions/insert-interval/
Lintcode30 Insert Interval solution 題解