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

江苏优化网站哪家好北京做网站公司有哪些

江苏优化网站哪家好,北京做网站公司有哪些,美术馆网站建设,中国网络安全公司排名思路 合并就是首先应该按照left左边界排序,排完序以后,如果i的左边界小于等于i-1的右边界,说明有重合,此时这两个可以合并,右边界应该取最大值。 代码 排序 我是定义了一个类,存储左右边界,先将数组转化…

思路

在这里插入图片描述
合并就是首先应该按照left左边界排序,排完序以后,如果i的左边界小于等于i-1的右边界,说明有重合,此时这两个可以合并,右边界应该取最大值。

代码

排序

我是定义了一个类,存储左右边界,先将数组转化为这个Interval数组,因为我不会二维数组排序

class Interval{int left;int right;}

排序:

 Arrays.sort(intervalss, new Comparator<Interval>() {@Overridepublic int compare(Interval o1, Interval o2) {if (o1.left == o2.left){return o1.right -o2.right;}return o1.left - o2.left;}});

后来学习了二维数组排序

Arrays.sort(intervals, new Comparator<int[]>() {public int compare(int[] interval1, int[] interval2) {return interval1[0] - interval2[0];}
});

进行区间合并

  		int min_left = intervalss[0].left;  //每一次合并的左边界int max_right = intervalss[0].right;//每一次合并的右边界for (int i = 1; i < intervalss.length ; i++) {if (intervalss[i].left> max_right ){ //新的最左边的值大于之前的最右边的值,说明连不起来,后面的需要作为一个新的区间,还有就是最后一个,应该直接作为一个新的区间List<Integer> list = new ArrayList<>(2);list.add(min_left);list.add(max_right);list2D.add(list);min_left = intervalss[i].left;max_right = intervalss[i].right;}else {max_right =Math.max(max_right, intervalss[i].right);}}List<Integer> list = new ArrayList<>(2); //不要忘了对最后一次合并处理,放入结果里面list.add(min_left);list.add(max_right);list2D.add(list);

全部代码:

public  int[][] merge(int[][] intervals) {List<List<Integer>> list2D = new ArrayList<>();Interval[] intervalss = new Interval[intervals.length];for (int i = 0; i < intervals.length; i++) {intervalss[i] = new Interval();intervalss[i].left = intervals[i][0];intervalss[i].right = intervals[i][1];}Arrays.sort(intervalss, new Comparator<Interval>() {@Overridepublic int compare(Interval o1, Interval o2) {if (o1.left == o2.left){return o1.right -o2.right;}return o1.left - o2.left;}});Arrays.stream(intervalss).forEach(a -> System.out.println(a.left + " " + a.right));int min_left = intervalss[0].left;int max_right = intervalss[0].right;for (int i = 1; i < intervalss.length ; i++) {if (intervalss[i].left> max_right ){ //新的最左边的值大于之前的最右边的值,说明连不起来,后面的需要作为一个新的区间,还有就是最后一个,应该直接作为一个新的区间List<Integer> list = new ArrayList<>(2);list.add(min_left);list.add(max_right);list2D.add(list);min_left = intervalss[i].left;max_right = intervalss[i].right;}else {max_right =Math.max(max_right, intervalss[i].right);}}List<Integer> list = new ArrayList<>(2); //不要忘了对最后一次合并处理,放入结果里面list.add(min_left);list.add(max_right);list2D.add(list);int[][] result = new int[list2D.size()][];for (int i = 0;i< list2D.size();i++){result[i] = new int[]{list2D.get(i).get(0), list2D.get(i).get(1)};}return result;}class Interval{int left;int right;}
http://www.yayakq.cn/news/778273/

相关文章:

  • 公司网站开发毕业设计开源网站推广
  • 河北住房建设厅官方网站代理网址ip
  • wordpress插件 网站网站开发计算机语言的比较
  • 深圳网站建设知名 乐云践新网页制作一年价格
  • 计算机网站开发职业定位wordpress历史
  • 建设部证书公布网站产品展示网站模板php
  • 长沙网站推广智投未来公司官网源码
  • 企业营销型网站案例莱芜网吧恢复营业
  • 网站建设三站合一用asp.net做的网站有哪些
  • 三合一网站开发教程安阳后营贴吧
  • 个人网站作业哈尔滨做设计和网站的公司
  • 烟台 做网站的公司北京平台网站建设公司
  • 河南企业网站定制国外推广网站有哪些
  • 海澜之家网站建设的计划查询网站是否被收录
  • 搜网站的关键词wordpress 用法
  • 智慧城市网站建设app下载赚钱
  • 网页设计建网站流程国网北京电力建设研究院网站
  • 百度站长资源管理住建局官网查询系统
  • 石家庄网站建设方案怎么让网站让百度收录
  • 老网站如何做301重定向新网站网络会议网站
  • 在线教学网站开发魔贝课凡seo课程好吗
  • 青岛做网站哪家公司好兰州百度推广的公司
  • 最好的自助建站系统江西南昌网络公司
  • 成都做网站设计哪家最权威wordpress分类页打不开
  • 网站制作需要什么人员wordpress 网站禁用全屏代码
  • 中企动力提供网站建设山西响应式官网建设平台
  • 中国建设安全监理协会网站贵州省网站建设
  • 天津做网站找哪家公司模仿建设银行网站
  • 如何做枪版电影网站怎么建设自己淘宝网站
  • mvc网站开发张家港网站制作哪家好