區間合併002
1、描述
56給出一個區間的集合,請合併所有重疊的區間。
示例 1:
輸入: intervals = [[1,3],[2,6],[8,10],[15,18]]
輸出: [[1,6],[8,10],[15,18]]
解釋: 區間 [1,3] 和 [2,6] 重疊, 將它們合併為 [1,6].
示例 2:
輸入: intervals = [[1,4],[4,5]]
輸出: [[1,5]]
解釋: 區間 [1,4] 和 [4,5] 可被視為重疊區間。
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/merge-intervals
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
2、關鍵字
多個區間,
3、思路
使用兩層vector,存起來
還沒思路
怎麼根據元組的第一個值來排序?可以直接呼叫sort函式!!!!!
4、notes
遍歷整個排序好的
提交了才知道是做過的題了,我服了!!!
||後面的換站的角度了,就把res放到左邊,然後遍歷每個線段的時候,和res的最後一個元素的右端點作比較,
if(res.empty()|| res.back()[1]<L)
5、複雜度
時間: O(nlogn)
空間:O(logN)
6、code
bool cmp(const vector<int> & a, const vector<int> & b) {
if (a[0] == b[0]) {
return a[1] < b[1];
}
return a[0] < b[0];
}
class Solution {
public:
vector<vector<int>> merge(vector<vector<int>>& intervals) {
vector<vector<int>> res; // 定義答案
if(!intervals.size()) return res; // 如果為空,直接返回
sort(intervals.begin(),intervals.end(),cmp); // 可以直接比較
for(auto tem:intervals) // 遍歷整個列表,處理完所有線段就好了。
{
int L=tem[0],R=tem[1]; // 把當前線段的邊界存起來
if(res.empty()|| res.back()[1]<L) // 如果結果集是空的,就直接加進來,不然就看第二個條件成立否, 這裡||後面就轉換位置了!!!
{ //結果集的最後一個元素,的後邊界如果小於當前的左邊界,就直接加入結果集
res.push_back(tem);
}
else // 不然就是重疊了,把結果集的最後一個元素的右邊界更新,要麼吞掉,要麼擴大
{
res.back()[1]=max(res.back()[1],R); // 吞掉,擴大
}
}
return res;
}
};
相關文章
- 區間合併
- 合併區間
- 6.24 區間合併
- 【區間dp】石子合併
- 區間dp 合併石子問題
- 1236:區間合併 2020-12-27
- HDU 3397 Sequence operation(線段樹區間染色加區間合併)
- 【Leetcode刷題篇】leetcode56 合併區間LeetCode
- 合併、刪除區間演算法C++程式碼演算法C++
- 統計將重疊區間合併成組的方案數.18098728
- ETL中雙流合併和多流合併的區別
- leetcode:1000. 合併石頭的最低成本(區間dp,困難)LeetCode
- 2181. 合併零之間的節點
- 程式碼隨想錄演算法訓練營day36 | leetcode 435. 無重疊區間、763. 劃分字母區間、56. 合併區間演算法LeetCode
- Hbase-原理-region合併和hfile的合併(大合併、小合併)
- 合併分支:Git merge 和 rebase 的區別Git
- 【BIM】基於BIMFACE的空間拆分與合併
- 遊戲中合併區服,暱稱問題遊戲
- Git merge和rebase分支合併命令的區別Git
- 聊天列表訊息合併,處理相鄰時間
- 327. 區間和的個數 (歸併排序)排序
- PHP 圖片的合併,微信小程式碼合併,文字合併PHP微信小程式
- 區間統計 聚合函式組合器函式
- array_merge和+號合併陣列的區別陣列
- 影片合併分割軟體如何合併影片
- iOS拆分,合併靜態庫以壓縮打包空間iOS
- 石子合併
- 合併果子
- 圖片合併成PDF,兩個PDF的合併
- 【java】Aspose.Words 合併單元格2種情況(橫向合併,縱向合併)Java
- ffmpeg合併影片
- PHP合併PDFPHP
- git合併分支Git
- hbase region 合併
- mysql 索引合併MySql索引
- AUTOCAD——合併命令
- RxJava 合併操作RxJava
- 合併陣列陣列