題意
中文描述
給定一組不重疊的區間,并向這組區間插入一個新的區間,在必要的時候要融合某些區間。
假設這些區間已經按每個區間的開始升序排列。
例子 1
原始區間集合
[1,3],[6,9]
, 向集合中插入
[2,5]
。
由于區間
[2,5]
和集合中的
[1,3]
重疊,需要融合,得到新的區間集合
[1,5],[6,9]
。
例子 2
插入的區間也可能和原始區間集合的多個區間重疊,例如:
原始區間集合
[1,2],[3,5],[6,7],[8,10],[12,16]
,插入區間
[4,9]
。
由于區間
[4,9]
與 原始集合中的
[3,5],[6,7],[8,10]
都重疊,是以要将這四個區間融合成一個區間
[3,10]
,進而得到新的區間集合
[1,2],[3,10],[12,16]
。
題解
解題思路
具體實作在
solution1.cpp
中。
每個區間由兩部分組成
[start,end]
,如果兩個區間
[a1,b1]
和
[a2,b2]
不重疊需要滿足:
a1 != a2
且
- 若
,則a1 < a2
b1 <