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

长沙网站设计公司哪家好北京公司排名seo

长沙网站设计公司哪家好,北京公司排名seo,网站备案域名怎么买,电商网站建设电话1.题目描述 题目翻译: 给定一个不重叠的区间阵列 intervals,其中intervals[i] [starti, endi]表示第i一个区间的起始位置和结束位置,并且intervals 按照起始位置starti升序排序。 另外,给定一个新的区间newInterval [start, e…

1.题目描述

在这里插入图片描述

题目翻译:

给定一个不重叠的区间阵列 intervals,其中intervals[i] = [starti, endi]表示第i一个区间的起始位置和结束位置,并且intervals 按照起始位置starti升序排序。

另外,给定一个新的区间newInterval = [start, end],表示另一个区间的起始位置和结束位置。

提交newInterval到插入intervals中,要求:

仍然intervals保持starti升序排序。

仍然保持intervals重叠不重叠(如果有重叠区间,则进行合并)。

返回创建newInterval后intervals。

2.思路

思路一:
在这里插入图片描述

思路2:

在这里插入图片描述

思路3:

在这里插入图片描述

在这里插入图片描述
思路4:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
思路5:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
总结: intervals[i][0] <= newInterval[1],那么 intervals[i] 的开始位置在 newInterval 的结束位置之前,说明 intervals[i] 的区间有可能和 newInterval 重叠。

例如,newInterval = [2, 5],intervals[i] = [4, 7],这时 intervals[i][0] = 4,newInterval[1] = 5,满足 4 <= 5,说明它们有重叠。
重叠的定义:

两个区间 [a, b] 和 [c, d] 重叠,当且仅当 a <= d 且 c <= b。

在这个问题中,通过 intervals[i][0] <= newInterval[1] 来确保 intervals[i] 和 newInterval 存在潜在重叠的情况(即左边的区间开始在右边的区间结束之前)。
如果当前区间 [a, b] 和新区间 [c, d] 发生重叠,我们的目标是要让区间 [a, b] 和 [c, d] 合并成一个新的区间。因为只要 a <= d,就可以肯定这两个区间有重叠,而 c <= b 则在合并时通过更新区间的开始和结束位置来自然满足。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.代码实现

class Solution {public int[][] insert(int[][] intervals, int[] newInterval) {List<int[]> L1=new ArrayList<>();int i=0,n=intervals.length-1;// 1. 先加入所有不重叠的、在 newInterval 之前的区间while(i<=n&& intervals[i][1]<newInterval[0]){L1.add(intervals[i]);//result.add(intervals[i]); 的作用是将整个 区间 [start, end] 加入 result,而不是单独加入 intervals[i][1](即区间的 end 值)。i++;}while(i<=n&&intervals[i][0]<=newInterval[1]){//更新区间的值// 2. 合并所有与 newInterval 有重叠的区间,新区间是在动态扩展,然后Interval是原始提供的数组newInterval[0]=Math.min(intervals[i][0],newInterval[0]);newInterval[1]=Math.max(intervals[i][1],newInterval[1]);i++;}// 加入合并后的区间L1.add(newInterval);while(i<=n){// 3. 加入所有不重叠的、在 newInterval 之后的区间L1.add(intervals[i]);i++;}// 4. 转换为二维数组返回,行数确定,列数可以扩展// return L1.toArray(new int[L1.size()][]);return L1.toArray(new int[L1.size()][2]);}
}

另一种写法

class Solution {public int[][] insert(int[][] intervals, int[] newInterval) {List<int[]> L1=new ArrayList<>();int i=0,n=intervals.length-1;// 1. 先加入所有不重叠的、在 newInterval 之前的区间while(i<=n&& intervals[i][1]<newInterval[0]){L1.add(intervals[i]);//result.add(intervals[i]); 的作用是将整个 区间 [start, end] 加入 result,而不是单独加入 intervals[i][1](即区间的 end 值)。i++;}while(i<=n&&intervals[i][0]<=newInterval[1]){//更新区间的值// 2. 合并所有与 newInterval 有重叠的区间,新区间是在动态扩展,然后Interval是原始提供的数组newInterval[0]=Math.min(intervals[i][0],newInterval[0]);newInterval[1]=Math.max(intervals[i][1],newInterval[1]);i++;}// 加入合并后的区间L1.add(newInterval);while(i<=n){// 3. 加入所有不重叠的、在 newInterval 之后的区间L1.add(intervals[i]);i++;}// 4. 转换为二维数组返回,行数确定,列数可以扩展//return L1.toArray(new int[L1.size()][2]);//return L1.toArray(new int[L1.size()][]);int res[][]=new int[L1.size()][2];for(int j=0;j<L1.size();j++){res[j]=L1.get(j);}return res;}
}
http://www.dtcms.com/wzjs/430743.html

相关文章:

  • 团购网站平台建设2022国内外重大新闻事件10条
  • 可靠的合肥网站建设千万别在百度上搜别人的名字
  • 如何传图片做网站加盟
  • 郑州免费建站网站怎么宣传
  • 网站开发主题信息流推广
  • 服务器哪些端口可以做网站网络宣传渠道有哪些
  • wordpress怎么限制建站数量今日头条淄博新闻
  • 淄博网站建设 leda.cc北京网站快速排名优化
  • 淘客网站如何做推广公司官网模板
  • 在民办医院做网站编辑怎么样seo优化的方法
  • 官方网站建设的意义如何宣传推广自己的产品
  • 上海哪里有做网站的百度指数官网登录
  • 开网络公司做网站挣钱么seo资源网站 排名
  • 易语言做网站视频宁波网站建设推广平台
  • 国外获奖网站自媒体人专用网站
  • 做金融怎么进基金公司网站seo在哪可以学
  • 大江网站建设免费搭建网站平台
  • 自己做同城购物网站天津seo优化
  • ps海报素材网seo网络推广方法
  • 网站改版文案包装上海网络推广专员
  • b2c网站建设教程各种网站
  • 企业网站建设的目的论文万网域名注册查询
  • 广东党员两学一做考试网站西安疫情最新数据消息中高风险地区
  • 鄂州英文网站建设十大场景营销案例
  • 企业品牌网站建设怎么做南京百度网站推广
  • 南京高新区规划建设局网站自己有网站怎么推广
  • 红旗渠建设集团网站google中文搜索引擎
  • 怎么做一元抽奖网站流氓网站
  • 重庆专业网站建设费用室内设计师培训班学费多少
  • 做商城类网站空间怎么买网络营销平台名词解释