1. 程式人生 > >Lintcode30 Insert Interval solution 題解

Lintcode30 Insert Interval solution 題解

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 題解