[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–57–Insert IntervalLeetCode
- LeetCode之Insert Interval(Kotlin)LeetCodeKotlin
- SQL INSERT批次插入方式SQL
- insert批量插入優化方案優化
- Leetcode 35 Search Insert PositionLeetCode
- Oracle批量插入資料insert all into用法Oracle
- SciTech-Mathmatics-Probability+Statistics-Population:Region-Sampling of Region : Confidence Interval(置信區間)IDE
- LeetCode 35. Search Insert PositionLeetCode
- oracle-資料庫- insert 插入語句Oracle資料庫
- LeetCode 435 無重疊區間LeetCode
- oracle的interval時間格式的總結Oracle
- 【Leetcode刷題篇】leetcode56 合併區間LeetCode
- MySQL防止重複插入相同記錄 insert if not existsMySql
- Interval
- [LeetCode] 380. Insert Delete GetRandom O(1)LeetCodedeleterandom
- insert和insertSelective區別
- Oracle insert all一次插入多個表中Oracle
- 二分搜尋樹系列之[ 插入操作 (insert) ]
- 二分搜尋樹系列之「 插入操作 (insert) 」
- SQL INSERT INTO 語句詳解:插入新記錄、多行插入和自增欄位SQL
- 57. 三數之和 &&
- [leetCode]327. 區間和的個數LeetCode
- PostgreSQL 原始碼解讀(4)- 插入資料#3(heap_insert)SQL原始碼
- interval 分割槽表clob預設表空間指定問題
- 【LeetCode刷題(簡單程度)】劍指 Offer 57. 和為s的兩個數字LeetCode
- leetcode刷題.763. 劃分字母區間.每日打卡LeetCode
- 力扣 leetcode 435. 無重疊區間 貪心力扣LeetCode
- PostgreSQL 插入時間與更新時間(qbit)SQL
- Oracle中的insert/insert all/insert firstOracle
- Java實現 LeetCode 35 搜尋插入位置JavaLeetCode
- MySQL中REPLACE INTO和INSERT INTO的區別分析MySql
- 演算法與資料結構系列 ( 四 ) - 插入排序法- Insert Sort演算法資料結構排序
- LeetCode381. O(1) 時間插入、刪除和獲取隨機元素 - 允許重複LeetCode隨機
- 每日一道 LeetCode (10):搜尋插入位置LeetCode
- LeetCode每日一題: 搜尋插入位置(No.35)LeetCode每日一題
- Q2 LeetCode35 搜尋插入位置LeetCode
- select into from 和 insert into select 的用法和區別
- Innodb:insert 第一次進行樂觀插入邏輯(二級索引)索引