[LeetCode] 57. Insert Interval 插入區間
[LeetCode] 57. Insert Interval 插入區間
給出一個無重疊的 ,按照區間起始端點排序的區間列表。
在列表中插入一個新的區間,你需要確保列表中的區間仍然有序且不重疊(如果有必要的話,可以合併區間)
Example1:
輸入:intervals = [[1,3],[6,9]], newInterval = [2,5]
輸出:[[1,5],[6,9]]
Example2:
輸入:intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8]
輸出:[[1,2],[3,10],[12,16]]
解釋:這是因為新的區間 [4,8] 與 [3,5],[6,7],[8,10] 重疊。
大致思路
用一個變數 cur 來遍歷區間,如果當前 cur 區間的結束位置小於要插入的區間的起始位置的話,說明沒有重疊,則將 cur 區間加入結果 res 中,然後 cur 自增1。直到有 cur 越界或有重疊 while 迴圈退出,然後再用一個 while 迴圈處理所有重疊的區間,每次用取兩個區間起始位置的較小值,和結束位置的較大值來更新要插入的區間,然後 cur 自增1。
AC程式碼
int n = intervals.size();
int cur = 0;
vector<vector<int>> res;
while (cur < n&&intervals[cur][1] < newInterval[0])
{
res.push_back(intervals[cur]);
cur++;
}
while (cur < n&&intervals[cur][0] <= newInterval[1])
{
newInterval[0] = min(newInterval[0], intervals[cur][0]);
newInterval[1] = max(newInterval[1], intervals[cur][1]);
++cur;
}
res.push_back(newInterval);
while (cur < n)
{
res.push_back(intervals[cur]);
cur++;
}
return res;
相關文章
- Leetcode Insert IntervalLeetCode
- leetcode–57–Insert IntervalLeetCode
- Leetcode-Insert IntervalLeetCode
- Insert Interval leetcode javaLeetCodeJava
- LeetCode之Insert Interval(Kotlin)LeetCodeKotlin
- [LeetCode] Search Insert Position 搜尋插入位置LeetCode
- Categorical, Ordinal, Interval - 變數之間的區別Go變數
- Merge Interval leetcode javaLeetCodeJava
- insert批量插入優化方案優化
- [CareerCup] 5.1 Insert Bits 插入位
- SQL INSERT批次插入方式SQL
- 【INSERT】在INSERT插入語句中引入條件限制選項實現資料插入控制
- insert /*+ append */直接路徑插入APP
- 【SQL】 Multi table insert 多表插入操作SQL
- oracle insert all多表插入的示例Oracle
- 時間型別interval year to month型別
- 關於insert /*+ append*/ 各種insert插入速度比較APP
- MySQL INSERT插入條件判斷:如果不存在則插入MySql
- Oracle批量插入資料insert all into用法Oracle
- c++ insert iterators 插入型迭代器C++
- MySQL:使用INSERT 插入多條記錄MySql
- 直接路徑插入 -- insert /*+append*/ into [zt]APP
- Leetcode Search Insert PositionLeetCode
- oracle-資料庫- insert 插入語句Oracle資料庫
- MyBatis insert操作插入,返回主鍵from官方MyBatis
- insert /*+ append */ into 與insert into 的區別APP
- INSERT ALL 和INSERT FIRST 的區別
- oracle的interval時間格式的總結Oracle
- Leetcode 35 Search Insert PositionLeetCode
- Leetcode-Search Insert PositionLeetCode
- Search Insert Position leetcode javaLeetCodeJava
- MySQL防止重複插入相同記錄 insert if not existsMySql
- Oracle 使用一條insert語句完成多表插入Oracle
- 一個insert插入語句很慢的優化優化
- 【SQL】使用一條INSERT語句完成多表插入SQL
- 使用Direct-Path INSERT插入資料到表中
- LeetCode 435 無重疊區間LeetCode
- INTERVAL分割槽插入大量資料導致ORA-4031錯誤