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

(LeetCode 面试经典 150 题) 57. 插入区间 (数组)

题目:57. 插入区间

在这里插入图片描述
思路:数组,时间复杂度0(n)。

先将newInterval左侧的区间都添加到v中,然后处理重复的区间,最后再将右侧的区间都加到v中即可。细节看注释。

C++版本:

class Solution {
public:vector<vector<int>> insert(vector<vector<int>>& intervals, vector<int>& newInterval) {// 答案vector<vector<int>> v;// intervals为空时,直接返回newInterval即可if(intervals.size()==0){v.push_back(newInterval);return v;}// 先将newInterval左侧的区间都添加到v中int l=newInterval[0],r=newInterval[1];int i;for(i=0;i<intervals.size();i++){if(l>intervals[i][1]){v.push_back(intervals[i]);}else{break;}}// 然后处理重复的区间if(i<intervals.size())l=min(intervals[i][0],l);for(;i<intervals.size();i++){if(r>=intervals[i][0]){r=max(r,intervals[i][1]);}else{break;}}v.push_back({l,r});// 最后再将右侧的区间都加到v中for(;i<intervals.size();i++){v.push_back(intervals[i]);}return v;}
};

JAVA版本:

class Solution {public int[][] insert(int[][] intervals, int[] newInterval) {List<int[]> v=new ArrayList<>();if(intervals.length==0){v.add(newInterval);return v.toArray(new int[v.size()][]);}int l=newInterval[0],r=newInterval[1];int i;for(i=0;i<intervals.length;i++){if(l>intervals[i][1]){v.add(intervals[i]);}else{break;}}if(i<intervals.length)l=Math.min(intervals[i][0],l);for(;i<intervals.length;i++){if(r>=intervals[i][0]){r=Math.max(r,intervals[i][1]);}else{break;}}v.add(new int[]{l,r});for(;i<intervals.length;i++){v.add(intervals[i]);}return v.toArray(new int[v.size()][]);}
}

GO版本:

func insert(intervals [][]int, newInterval []int) [][]int {v:=[][]int{}if len(intervals)==0 {v=append(v,newInterval)return v}l,r:=newInterval[0],newInterval[1]i:=0for ;i<len(intervals);i++ {if l>intervals[i][1] {v=append(v,intervals[i])}else{break}}if i<len(intervals) {l=min(l,intervals[i][0])}for ;i<len(intervals);i++ {if r>=intervals[i][0] {r=max(r,intervals[i][1])}else{break}}v=append(v,[]int{l,r})for ;i<len(intervals);i++ {v=append(v,intervals[i])}return v
}
http://www.dtcms.com/a/297350.html

相关文章:

  • 学习日志18 python
  • 2025最新蜘蛛池在百度SEO中的应用
  • 如何将荣耀手机的照片传输到 Mac
  • 数据结构2-集合类ArrayList与洗牌算法
  • 百度快排技术分析的核心要素
  • 基于开源链动2+1模式AI智能名片S2B2C商城小程序的私域流量池用户运营研究
  • 如何实现缓存音频功能(App端详解)
  • 代驾小程序系统开发:引领出行行业数字化转型
  • JMeter压测场景 jp@gc - stepping thread group 步长插件的使用
  • 大模型API和秘钥获取地址
  • NodeJS搭建SSE接口服务
  • 深入解析Hadoop MapReduce中Reduce阶段排序的必要性
  • ⭐ Unity 编辑器扩展:简单自动合并多个 Mesh 并导出为 .asset
  • 通过kettle获取API数据
  • 虚拟机docker elasticsearch启动失败
  • JMeter每次压测前清除全部以确保异常率准确(以黑马点评为例、详细图解)
  • 如何提高微信小程序的应用速度
  • 数据赋能(332)——安全与合规——保密管理
  • RocketMQ5.3.1的安装
  • C 语言数组深度解析:从内存布局到安全实践的全维度指南
  • 二开---01
  • 什么是FCR,如何提升FCR?
  • Springboot3.0 集成 RocketMQ5
  • linux配置ntp时间同步
  • 告别虚函数性能焦虑:深入剖析C++多态的现代设计模式
  • Go 官方 Elasticsearch 客户端 v9 快速上手与进阶实践*
  • 银河麒麟安装软件商店方法
  • 《设计模式之禅》笔记摘录 - 10.装饰模式
  • vue项目入门
  • PostgreSQL对象权限管理