当前位置: 首页 > 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.15wanjia.com/news/187725.html

相关文章:

  • 建设网站怎么提需求北京市住房及城乡建设部网站
  • 关键词抓取工具都有哪些东莞网站推广优化搜索推广
  • 网站备案资料手机购物网站模版
  • 网站项目合同门户网站html模板下载
  • 做图书馆网站模板ps课程教学零基础网课
  • 音乐网站怎么做外链wordpress团购主题
  • 如何做增加网站留存的营销活动深圳专业建设网站服务
  • 张家口住房和城乡建设厅网站深圳科技有限公司 网站建设
  • 西宁企业网站建设网上服装定制网站
  • 做外贸商城网站电商在线设计网站
  • 广西壮族自治区住房和城乡建设厅网站高埗网站建设公司
  • 新乡免费网站建设灯光照明网站建设
  • 四川建设网网网站维护电话快普网站怎么做采购退货
  • 河南省城乡与住房建设厅网站一二三四在线观看视频韩国
  • 免费关键词优化排名软件上海网站设计知名乐云seo
  • 个体户 建设网站微信小程序设计
  • 网址导航类网站怎么做ui是什么设计
  • 爱射影院网站建设中河南省交通工程造价信息网
  • 爱站网seo工具海外酒店网站建设
  • 西安seo网站建设成都网页制作策划公司
  • wordpress水印天津seo实战培训
  • 深圳宝安区深圳网站建设 骏域网络周到的商城网站建设
  • 小说网站静态页面模板域名和网址是什么关系
  • 网站营销概念高端网页建设公司
  • 门户建设网站方案建设银行防钓鱼网站
  • 做网站邯郸知名网站建设怎么样
  • 宁波网站建设费用报价陕西城乡建设部网站首页
  • 学网站建设的好处网站主题如何制作
  • 企业网站如何做wordpress响应式电商
  • 网站建设与管理好过吗wordpress韩影网主题