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

力扣57. 插入区间

双指针法

  • 思路:
    • 用待插入区间左右边界初始化双指针 left 和 right;
    • 遍历待归并区间:
      • 如果元素整体边界在 [left, right] 左侧(item[1] < left),则将给元素插入结果数组中;
      • 如果元素整体边界在 [left, right] 右侧 (item[0] > right),则将 {left, right} 区间插入结果数组;
      • 如果在 [left, right] 之间,更新 left 和 right (左者更左,右者更右);
    • 注意遍历完之后 {left, right} 是否插入结果数组中;
class Solution {
public:vector<vector<int>> insert(vector<vector<int>>& intervals, vector<int>& newInterval) {int left = newInterval[0];int right = newInterval[1];bool mark = false;std::vector<std::vector<int>> result;for (const auto & item: intervals) {if (item[0] > right) {if (!mark) {result.push_back({left, right});mark = true;}result.push_back(item);} else if (item[1] < left) {result.push_back(item);} else {left = std::min(left, item[0]);right = std::max(right, item[1]);}}if (!mark) {result.push_back({left, right});}return result;}
};

http://www.lryc.cn/news/264037.html

相关文章:

  • Linux c++开发-11-Socket TCP编程简单案例
  • ros2机器人常规控制流程
  • 分布式全局ID之雪花算法
  • 拿到服务器该做的事和升级docker engine
  • 【VScode和Leecode的爱恨情仇】command ‘leetcode.signin‘ not found
  • mangokit:golang web项目管理工具,使用proto定义http路由和错误
  • 微信小程序实现一个简单的登录功能
  • whisper深入-语者分离
  • LuaJava操作Java的方法
  • oracle怎样才算开启了内存大页?
  • 【halcon深度学习之那些封装好的库函数】determine_dl_model_detection_param
  • 跟着我学Python进阶篇:01.试用Python完成一些简单问题
  • neo4j-Py2neo使用
  • uint29传输格式
  • Linux:终端定时自动注销
  • STM32F103RCT6开发板M3单片机教程06--定时器中断
  • 数据库故障Waiting for table metadata lock
  • Springboot数据校验与异常篇
  • 第三十六章 XML 模式的高级选项 - 创建子类型的替换组
  • 堆与二叉树(上)
  • HBase查询的一些限制与解决方案
  • 软件开发 VS Web开发
  • 基于Springboot的旅游网站设计与实现(论文+调试+源码)
  • 【从零开始学习--设计模式--策略模式】
  • 条款6:若不想使用编译器自动生成的函数,就该明确拒绝
  • 零基础也能制作家装预约咨询小程序
  • Mybatis的插件运⾏原理,如何编写⼀个插件?
  • C++复合数据类型:字符数组|读取键盘输入|简单读写文件
  • Windows11环境下配置深度学习环境(Pytorch)
  • 泛型深入理解