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

NC37 合并区间【牛客网】

文章目录

  • 零、原题链接
  • 一、题目描述
  • 二、测试用例
  • 三、解题思路
  • 四、参考代码

零、原题链接


NC37 合并区间

一、题目描述

在这里插入图片描述

二、测试用例

在这里插入图片描述

三、解题思路

  1. 基本思路:
      申请一个 val 大小的空间,对于一个区间,我们在区间开始位置的下标存放区间结束位置,如果对于位置已存在数字,则取二者最大值。这样在遍历区间时,如果遇到一个区间开始,则读取其结束位置,判断与当前区间结束位置谁更大,如果比当前结束位置大,则更新区间结束位置,否则不更新,直到遍历到结束位置,这样就成功合并一个区间,从到到尾遍历一篇,则所有能合并区间都合并。
  2. 具体思路:
    • 申请一个 val 大小的向量,初始化为 -1 ;
    • 遍历所有区间,数组下标表示区间开始,数组内容表示区间结束;
    • 遍历数组,
      • 如果是 -1 ,则跳过;
      • 如果非 -1 ,则开始合并区间;
        • 更新遍历范围为数组值,即区间的结束
        • 遍历,如果遇到非 -1 ,则表示碰到一个可合并的区间,取其结束位置,如果比当前结束位置远,则更新结束位置
      • 合并区间结束,则将区间存放到 ans 中。
    • 返回答案 ans 。

四、参考代码

时间复杂度: O ( v a l ) \Omicron(val) O(val)
空间复杂度: O ( v a l ) \Omicron(val) O(val)

/*** struct Interval {*  int start;*  int end;*  Interval(int s, int e) : start(start), end(e) {}* };*/
#include <vector>
class Solution {public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param intervals Interval类vector* @return Interval类vector*/vector<Interval> merge(vector<Interval>& intervals) {int _max = 200001;vector<int> vec(_max, -1);vector<Interval> ans;for (int i = 0; i < intervals.size(); i++) {vec[intervals[i].start] = max(vec[intervals[i].start], intervals[i].end);}for (int i = 0; i < _max; i++) {if (vec[i] == -1)continue;Interval t;t.start = i;t.end = vec[i];while (i <= t.end) {t.end = max(t.end, vec[i]);i++;}i--;ans.emplace_back(t);}return ans;}
};
http://www.xdnf.cn/news/694945.html

相关文章:

  • 设计模式-依赖倒转原则
  • 微服务FallbackFactory和FallbackClass
  • MCP Server的五种主流架构:从原理到实践的深度解析
  • DeepSeek 赋能智能物流:解锁仓储机器人调度的无限可能
  • 油烟净化器风道设计要点:如何降低风阻并提升净化效果
  • RPG14.装备武器与卸载武器
  • 压测的服务器和用户环境的区别
  • 网站服务器出现异常的原因是什么?
  • Houdini-为人工智能训练生成合成数据
  • Vision + Robot New Style
  • 民意调查员
  • 将 AI 解答转换为 Word 文档
  • [网页五子棋][匹配模块]前后端交互接口(消息推送机制)、客户端开发(匹配页面、匹配功能)
  • Nginx的反向代理
  • 【HW系列】—Log4j2、Fastjson漏洞流量特征
  • Android 16系统源码_无障碍辅助(一)认识无障碍服务
  • 2025.05.28【Choropleth】群体进化学专用图:区域数据可视化
  • WifiEspNow库函数详解
  • 【时时三省】(C语言基础)函数的递归调用例题
  • Flask集成pyotp生成动态口令
  • DeepSeek实战:打造智能数据分析与可视化系统
  • 用 Python 实现了哪些办公自动化
  • canal高可用配置
  • Java开发之定时器学习
  • LVS -DR
  • 每日算法 -【Swift 算法】正则表达式匹配:支持 `.` 和 `*`
  • 如何设计高效的数据湖架构:存储策略、Schema 演进与数据生命周期管理
  • 基于51单片机的音乐盒汽车喇叭调音量proteus仿真
  • 基于Doc2Vec的Markdown文档分类实战:从预处理到模型评估
  • 部署swagger接口文档到云服务器