zoukankan      html  css  js  c++  java
  • 合并区间

    package my;
    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    
    public class MergeIntervals {
        int[][] merge(int[][] intervals){
            Arrays.sort(intervals,(i1,i2) ->i1[0]-i2[0]);   //按照区间起始位置排序
           // Arrays.sort(intervals,(v1,v2) -> Integer.compare(v1[0],v2[0]));
            //定义一个previous变量,初始化为null
            int[] previous = null;
            //定义一个result变量,用来保存最终的区间结果
            List<int[]> result = new ArrayList<>();
            //从头开始遍历给定的所有区间
            for(int[] current : intervals){
                //如果这个是第一个区间,或者当前区间和前一个区间没有重叠,那么将当前区间加入到结果中
                if(previous == null || current[0] > previous[1]){
                    result.add(previous = current);
                }else{ //否则,两个区间发生了重叠,更新前一个区间的结束时间
                    previous[1] = Math.max(previous[1],current[1]);
                }
            }
            return result.toArray(new int[result.size()][]);
        }
    
        public static void main(String[] args){
            int[][] inte= {{1,4},{2,5},{6,9},{7,10},{11,45}};
            MergeIntervals mi = new MergeIntervals();
           int[][] aa= mi.merge(inte);
          for (int i=0 ;i <aa.length;i++){
              for(int j=0;j <aa[i].length;j++){
                  System.out.println(aa[i][j] +  " ");
              }
              System.out.println();
          }
        }
    }
  • 相关阅读:
    面试题链接
    75 道 BAJT 高级 Java 面试题,你能答上几道?
    使用UML描述需求都实现的过程
    java面试题(下)
    golang中goconfig包使用解析
    golang中sublime text中配置goimports
    golang中new和make区别
    golang中并发sync和channel
    使用go build 进行条件编译
    golang中time包用法
  • 原文地址:https://www.cnblogs.com/goodtest2018/p/13621804.html
Copyright © 2011-2022 走看看