56. 合并区间-LeetCode

心得:创建一个新数组,把第一条记录填进去,不断合并比较

感觉不是很满意,后面继续需改。

class Solution {
      public int[][] merge(int[][] intervals) {
           ArrayList<int[]> list=new ArrayList<>();
            if(intervals==null||intervals.length==0)
                return new int[0][0];
          // LinkedList<int[]> list=new LinkedList<>();
           Arrays.sort(intervals,new Comparator<int[]>()
           {
               @Override
               public int compare(int[] a,int[] b)
               {
                       return a[0]-b[0];
               }
           });
           list.add(intervals[0]);
          for(int i=1;i<intervals.length;i++)
          {
              if(intervals[i][0]<=list.get(list.size()-1)[1])
              {
                  if(intervals[i][1]>=list.get(list.size()-1)[1])
                      list.get(list.size()-1)[1]=intervals[i][1];               
              }
              else
                  list.add(intervals[i]);
            }
      int[][] arr=new int[list.size()][2];
     for(int i=0;i<list.size();i++)
     {
         arr[i][0]=list.get(i)[0];
         arr[i][1]=list.get(i)[1];
     }
     return arr;
        }
    
}

猜你喜欢

转载自www.cnblogs.com/pc-m/p/11070700.html