代码随想录打卡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;
    }
};
相关推荐
范纹杉想快点毕业几秒前
嵌入式通信协议深度解析:从SPI/I2C到CAN总线的完整实现指南嵌入式工程师的炼成之路:从校园到实战的跨越
linux·运维·服务器·数据库·算法
啊阿狸不会拉杆几秒前
《数字信号处理》第10章-数字信号处理中的有限字长效应
算法·matlab·fpga开发·信号处理·数字信号处理·dsp
week_泽5 分钟前
GBDT 算法中构建第一个弱学习器(CART 回归树)-计算示例
学习·算法·回归·gbdt
傻小胖7 分钟前
16.ETH-状态树-北大肖臻老师客堂笔记
笔记·算法·区块链·哈希算法
张张努力变强9 分钟前
C++ 类和对象(五):初始化列表、static、友元、内部类等7大知识点全攻略
开发语言·数据结构·c++·算法
老鼠只爱大米11 分钟前
LeetCode经典算法面试题 #23:合并K个升序链表(分支法、优先队列等多种实现方案详细解析)
算法·leetcode·链表·优先队列·多路归并·分治法·合并链表
啵啵鱼爱吃小猫咪14 分钟前
机器人几何雅可比与解析雅可比
人工智能·学习·算法·机器学习·matlab·机器人
养军博客17 分钟前
C语言五天速成(可用于蓝桥杯备考)
c语言·数据结构·算法
zhangkaixuan45617 分钟前
Paimon Split 机制深度解析
java·算法·数据湖·lsm-tree·paimon
Yupureki18 分钟前
《算法竞赛从入门到国奖》算法基础:搜索-BFS初识
c语言·数据结构·c++·算法·visual studio·宽度优先