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

网站建设搭建步骤网站建设交易

网站建设搭建步骤,网站建设交易,湖南中海建设集团有限公司网站,已购买域名 如何做网站1.题目描述 2.思路 思路参考了代码随想录&#xff1a; 按照左边界从小到大排序之后&#xff0c;如果 intervals[i][0] < intervals[i - 1][1] 即intervals[i]的左边界 < intervals[i - 1]的右边界&#xff0c;则一定有重叠。&#xff08;本题相邻区间也算重贴&#xff…

1.题目描述

在这里插入图片描述

2.思路

思路参考了代码随想录:

按照左边界从小到大排序之后,如果 intervals[i][0] <= intervals[i - 1][1] 即intervals[i]的左边界 <= intervals[i - 1]的右边界,则一定有重叠。(本题相邻区间也算重贴,所以是<=)
如果有合并,则把合并区间加入到结果数组中,如果没有合并,则将该区间加入到数组中。

例子:
在这里插入图片描述

在这里插入图片描述
return res.toArray(new int[res.size()][]);
//将 LinkedList<int[]> 转换成 int[][] 数组作为最终结果返回。

补充2:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

补充2:
在这里插入图片描述

补充3:
在这里插入图片描述

3.代码实现

方法1:不带测试用例

class Solution {public int[][] merge(int[][] intervals) {//?创建一个链表,res是动态的,可以随时插入和删除数组LinkedList<int[]> result=new LinkedList<>();//先将无序的二维数组,用自定义的规则进行排序,注意这块内容不熟练。将二维数组的左区间进行排序。Arrays.sort(intervals,(a1,a2)->Integer.compare(a1[0],a2[0]));//将第一个区间加入到res中,用于后序区间的比较和合并result.add(intervals[0]);//进行比较,如果第一个区间的右边界小于第二个区间的左边界,则进行合并//二维数组可以看作一维数组的数组,i从第二个元素开始(i=1),因为第一个元素(i=0)已经加入到res中for(int i=1;i<intervals.length;i++){if(result.getLast()[1]>=intervals[i][0]){//开始判断新区间的起始位置和结束位置,因为经过排序后,左边界的最小值是res一开始加入的区间的左边界int begin=result.getLast()[0];int end=Math.max(result.getLast()[1],intervals[i][1]);//删除原来的旧区间result.remove(result.getLast());// result.removeLast();//将合并的新区间(一维数组)加入到res中,result.add(new int[]{begin,end});}else{//如果两个区间不重合,直接把当前区间(Y一维数组)加入到结果数组中result.add(intervals[i]);}}return result.toArray(new int[result.size()][]);}}

方法二:带测试用例

import java.util.Arrays;
import java.util.LinkedList;public class H56 {public int[][] merge(int[][] intervals) {//?创建一个链表,res是动态的,可以随时插入和删除数组LinkedList<int[]> result=new LinkedList<>();//先将无序的二维数组,用自定义的规则进行排序,注意这块内容不熟练。将二维数组的左区间进行排序。Arrays.sort(intervals,(a1,a2)->Integer.compare(a1[0],a2[0]));//将第一个区间加入到res中,用于后序区间的比较和合并result.add(intervals[0]);//进行比较,如果第一个区间的右边界小于第二个区间的左边界,则进行合并//二维数组可以看作一维数组的数组,i从第二个元素开始(i=1),因为第一个元素(i=0)已经加入到res中for(int i=1;i<intervals.length;i++){if(result.getLast()[1]>=intervals[i][0]){//开始判断新区间的起始位置和结束位置,因为经过排序后,左边界的最小值是res一开始加入的区间的左边界int begin=result.getLast()[0];int end=Math.max(result.getLast()[1],intervals[i][1]);//删除原来的旧区间result.remove(result.getLast());//result.removeLast();//将合并的新区间(一维数组)加入到res中,result.add(new int[]{begin,end});}else{//如果两个区间不重合,直接把当前区间(Y一维数组)加入到结果数组中result.add(intervals[i]);}}return result.toArray(new int[result.size()][]);}public static void main(String[] args){H56 test2=new H56();int[][] intervals={{1,3},{2,6},{8,10},{15,18}};int[][] res=test2.merge(intervals);System.out.println("合并后的区间结果:");for(int[] m:res){//m本来是1维数组带花括号,打印成中括号的1维数组System.out.println(Arrays.toString(m));}}}

在这里插入图片描述

http://www.dtcms.com/a/509568.html

相关文章:

  • 《3D古城场景角色碰撞优化的实战指南》
  • 网站建设与制作实验报告开个人网站怎么赚钱
  • 北京网站seo价格网站备案 登陆
  • MySQL笔记15
  • 做养生网站怎么样小程序制作永久免费
  • 怎么查自己专业是否符合一建系统优化是什么意思
  • 网站建设推广语言鄂尔多斯建设局网站
  • 手机网站制作步骤我为什么不建议年轻人做运营
  • 宜春招聘网站开发区招工徐州市城乡建设局官方网站
  • 通配符对称冲突检测工具
  • Linux小课堂: 数据处理核心命令之grep、sort、wc、uniq 与 cut 的深度解析
  • 深圳建筑设计平台网站wordpress wp posts
  • 北京住房和城乡建设官方网站色彩搭配比较好的网站
  • 找到网站后台地址如何做自己网站
  • 有没有人做网站大学做html个人网站素材
  • 嘉兴五县两区网站建设局机关网站建设
  • 江苏省交通建设厅门户网站wordpress如何修改首页文件模板
  • 如何建立一个网站详细步骤通辽住房和城乡建设厅网站
  • 网站设计需要多少钱小程序开发教程 下载
  • 公司无网站无平台怎么做外贸2021最火关键词
  • 手机网站的静态页面官网站站
  • 蒙古网站后缀国内知名设计工作室
  • 单页网站怎么制作昆明企业网站建设公司
  • 建设银行兰州分行网站百度小程序开发平台
  • 朝阳网站建设 慈云寺厦门易尔通网站建设好吗
  • 网站 备案 哪个省建设培训中心网站
  • 成都大型网站建设公司iis网站属性在哪
  • 中国站长查询域名备案西安有哪些做网站的公司好
  • 东莞定制网站建设jsp网站部署怎么做
  • 百度推广太原网站建设阿里云服务器添加网站