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

那些做软件的网站深圳推广公司

那些做软件的网站,深圳推广公司,深圳关键词排名首页,wordpress 列表 展开收缩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/352370.html

相关文章:

  • 龙岗附近公司做网站建设多少钱如何查询百度搜索关键词排名
  • 如何做网店网站赛雷猴是什么意思
  • 辽阳建设银行网站推广软件一键发送
  • 深圳网址网站建设公司百度热搜榜排名
  • 睡不着偷偷看b站seo外包公司费用
  • 邯郸做网站最好的公司百度爱采购推广一个月多少钱
  • 哈尔滨最好的网站建设公司游戏推广员是诈骗吗
  • 上传图片的网站要怎么做网站维护工作内容
  • 抖音开放平台常州百度关键词优化
  • 做网站商城怎么样北京公司排名seo
  • 法律检索网站开发2022国内外重大新闻事件10条
  • 做网站挣钱打擦边球网上卖货的平台有哪些
  • 泉州市知名网站建设公司新品怎么刷关键词
  • 家庭宽带做网站鄂尔多斯seo
  • word网站的链接怎么做青岛排名推广
  • 网站封装百度开户代理商
  • 做写手哪个网站好网站推广软件免费
  • 青岛市建设工程质量安全监督站官方网站网推公司
  • 政府为什么做不好网站百度怎么优化排名
  • 证明做二维码打款网站链接千峰培训出来好就业吗
  • 买了一个域名怎么做网站免费做网站的平台
  • 图片幻灯片插件 wordpress昆明seo
  • hui怎么做网站网站快速排名推荐
  • 国内做音乐网站外包公司是正规公司吗
  • 电话做网站的推广市场营销七大策略
  • 珠海企业落户申请网站最新网络营销方式有哪些
  • 成品网站模板下载保定seo网站推广
  • 美文网站源码app推广软件有哪些
  • 上海网站推广珈维哪个平台可以免费推广
  • 云网站制作的流程友情下载网站