当前位置: 首页 > news >正文

(贪心 合并区间)leetcode 56

思路来源:代码随想录--代码随想录_合并区间题解

首先用lambda 按照左界值升序排序

建立答案的二维数组,将第一个行区间放入,判断从第二行开始

第i行的左区间一定大于第i-1行的左区间(排序过了),所以只判断ans的右区间和intervals的左区间:

如果前者大于后者,就合并,  否则就把后者放入ans,将后者与intervals的区间判断是否合并。

(每次判断只判断ans最后的区间也就是ans.back()[1])

具体如何合并呢?

改变ans.back()[1]的值就行了:取ans back()的右区间和interval i的右区间的最大值

代码如下:

class Solution {
public:
    vector<vector<int>> merge(vector<vector<int>>& intervals) {
        sort(intervals.begin(),intervals.end(),[](const auto &a,const auto &b)
        {
return a<b;
        }
        
        );
        vector<vector<int>>ans;
        int n=intervals.size();
        if(intervals.size()==1)
        return intervals;
        ans.push_back(intervals[0]);
        for(int i=1;i<n;i++)
        {
            if(intervals[i][0]<=ans.back()[1])
            {
                ans.back()[1]=max(ans.back()[1],intervals[i][1]);
            }
            else
            ans.push_back(intervals[i]);
            


        }
return ans;
    }
};

intervals的长度是>=1的不需要等于0直接返回的判断

相关文章:

  • 接口性能优化?
  • 介绍 torch-mlir 从 pytorch 生态到 mlir 生态
  • 《Python实战进阶》No 10:基于Flask案例的Web 安全性:防止 SQL 注入、XSS 和 CSRF 攻击
  • C# 上位机---INI 文件
  • Ubuntu24.04 安装ssh开启22端口及允许root用户远程登录
  • 嵌入式软件数据结构(二)数组知识点专栏 附源码 附原理
  • Redis数据结构-List列表
  • 地基简识Spring MVC 组件
  • 制造业中的“大数据”:如何实现精准决策?
  • Gorm中的First()、Create()、Update()、Delete()的错误处理
  • Linux-权限
  • 类和对象(6)——Object类、内部类
  • LabVIEW虚拟弗兰克赫兹实验仪
  • 洛谷 P11293 [NOISG 2022 Qualification] L-Board
  • Flutter 3.29.0 版本对颜色Color做出的改动 Display P3你了解吗
  • 【面试】Java 中的 BIO、NIO 和 AIO:区别、使用及实例
  • 功能丰富的自动化任务软件zTasker_2.1.0_绿色版_屏蔽强制更新闪退
  • 基于GIS(地理信息系统)技术的智能交通系统的设计与实现
  • Python 网络爬虫的应用
  • C# 13与.NET 9革新及工业开发应用
  • 中科院合肥物质院迎来新一届领导班子:刘建国继续担任院长
  • “上海-日喀则”援藏入境旅游包机在沪首航
  • 梅花奖在上海|湘剧《夫人如见》竞梅,长沙文旅来沪推广
  • 终于,俄罗斯和乌克兰谈上了
  • 对谈|“大礼议”:嘉靖皇帝的礼法困境与权力博弈
  • 英德宣布开发射程超2000公里导弹,以防务合作加强安全、促进经济