代码随想录打卡day25:56.合并区间

题目链接:56. 合并区间 - 力扣(LeetCode)

思路:

先按左边界排序,然后开始遍历。发现有当前位置区间和前一位置区间有交集,就合并区间并存放在当前位置,这样可以方便之后遍历的下一位置i+1与当前位置i对比看是否有交集。若无交集则将当前位置i存放的区间放到res中。

代码如下:

cpp 复制代码
class Solution {
public:
    vector<vector<int>> merge(vector<vector<int>>& intervals) {
        sort(intervals.begin(),intervals.end(),
        [](const vector<int> &a,const vector<int>&b){
            if(a[0]==b[0]){
                return a[1]<b[1];
            }
            else return a[0]<b[0];
        });
        
        vector<vector<int>> res;

        if(intervals.size()<=1) return intervals;
        
        for(int i=1;i<intervals.size();++i){
            if(intervals[i][0]<=intervals[i-1][1]){
                intervals[i][0]=min(intervals[i][0],intervals[i-1][0]);
                intervals[i][1]=max(intervals[i][1],intervals[i-1][1]);
            }
            else{
                vector<int> path={intervals[i-1][0],intervals[i-1][1]};
                res.push_back(path);
            }
            if(i==intervals.size()-1){
                res.push_back({intervals[i][0],intervals[i][1]});
            }
        }
        return res;
    }
};
相关推荐
小O的算法实验室20 小时前
2026年ASOC,基于深度强化学习的无人机三维复杂环境分层自适应导航规划方法,深度解析+性能实测
算法·无人机·论文复现·智能算法·智能算法改进
‎ദ്ദിᵔ.˛.ᵔ₎20 小时前
LIST 的相关知识
数据结构·list
M--Y21 小时前
Redis常用数据类型
数据结构·数据库·redis
郭涤生21 小时前
STL vector 扩容机制与自定义内存分配器设计分析
c++·算法
༾冬瓜大侠༿21 小时前
vector
c语言·开发语言·数据结构·c++·算法
Ricky111zzz1 天前
leetcode学python记录1
python·算法·leetcode·职场和发展
汀、人工智能1 天前
[特殊字符] 第58课:两个正序数组的中位数
数据结构·算法·数据库架构··数据流·两个正序数组的中位数
liu****1 天前
第16届省赛蓝桥杯大赛C/C++大学B组(京津冀)
开发语言·数据结构·c++·算法·蓝桥杯
汀、人工智能1 天前
[特殊字符] 第79课:分割等和子集
数据结构·算法·数据库架构·位运算·哈希表·分割等和子集
汀、人工智能1 天前
[特殊字符] 第74课:完全平方数
数据结构·算法·数据库架构·图论·bfs·完全平方数