天天看點

Leetcode | C++ 57-InsertInterval

題意

中文描述

給定一組不重疊的區間,并向這組區間插入一個新的區間,在必要的時候要融合某些區間。

假設這些區間已經按每個區間的開始升序排列。

例子 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 <