給定一組非重疊的時間間隔的,插入乙個新的時間間隔成區間(可能需要合併)。
實施例1:給定的時間間隔[1,3],[6,9],插入並在如[1,5]合併[2,5],[6,9]。
實施例2:給定[1,2],[3,5],[6,7],[8,10],[12,16],插入和作為合併[4,9]後為[1,2],[3,10],[12,16]。
時間複雜度o(n),空間複雜度o(1)
code
#define _crt_secure_no_warnings
#include
using
namespace
std;
#include
struct interval
};class solution
else
if (tmp._start>it->_end)
else
if (tmp._end < it->_end)
it = _root.erase(it);}}
_root.insert(_root.end(), tmp);
}void disp()
}private:
vector
_root;
};void test()
int main()
LeetCode 區間合併
區間合併 給出乙個區間的集合,請合併所有重疊的區間。示例 1 輸入 1,3 2,6 8,10 15,18 輸出 1,6 8,10 15,18 解釋 區間 1,3 和 2,6 重疊,將它們合併為 1,6 示例 2 輸入 1,4 4,5 輸出 1,5 解釋 區間 1,4 和 4,5 可被視為重疊區間。i...
LeetCode 合併區間
給出乙個區間的集合,請合併所有重疊的區間。示例 1 輸入 1,3 2,6 8,10 15,18 輸出 1,6 8,10 15,18 解釋 區間 1,3 和 2,6 重疊,將它們合併為 1,6 示例 2 輸入 1,4 4,5 輸出 1,5 解釋 區間 1,4 和 4,5 可被視為重疊區間。思路分析 此...
leetcode 區間合併
個區間若能合併,則第乙個區間的右端點一定不小於第二個區間的左端點。所以先把區間集合按照左端點從小到大進行排序,接著從第乙個區間開始遍歷,對每個區間執行如下操作 1.首先儲存該區間的左端點start和右端點end 3.若當前區間不再滿足合併條件或者遍歷到了集合末尾,就構建新合併區間,其中左端點為初始區...