ogv

Untitled

ogv
Sep 25th, 2019
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.77 KB | None | 0 0
  1. // Runtime: 6 ms your runtime beats 88.61 % of java
  2. class Solution {
  3.     public int[][] merge(int[][] intervals) {
  4.         LinkedList<int[]> q = new LinkedList<>(Arrays.asList(intervals));
  5.        
  6.         ArrayList<int[]> r = new ArrayList<>();
  7.        
  8.         while (!q.isEmpty()){
  9.             int[] i = q.remove();
  10.            
  11.             boolean merged;
  12.             do{
  13.                merged = false;
  14.                Iterator<int[]> it = q.iterator();
  15.                 while (it.hasNext()) {
  16.                 int[] j = it.next();
  17.                 if (j[0] <= i[1] && j[1] >= i[0]) {
  18.                     if (j[0] < i[0]) i[0] = j[0];
  19.                     if (j[1] > i[1]) i[1] = j[1];
  20.                     it.remove();
  21.                     merged = true;
  22.                 }
  23.               }
  24.             } while (merged);
  25.             r.add(i);
  26.         }
  27.  
  28.         return r.toArray(new int [r.size()][2]);
  29.     }
  30. }
  31.  
  32.  
  33. // Runtime: 6 ms your runtime beats 88.61 % of java submissions.
  34. class Solution {
  35.     public int[][] merge(int[][] intervals) {
  36.        Arrays.sort(intervals,
  37.                    new  Comparator<int[]>() {
  38.                       public int compare (int[] a,int[] b) {
  39.                           return a[0] > b[0] ? +1: a[0] < b[0] ? -1: a[1] - b[1];
  40.                       }});
  41.    
  42.         ArrayList<int[]> r = new ArrayList<>();
  43.        
  44.         int[] last = null;
  45.         for (int[] i: intervals) {
  46.             if (last == null){
  47.                 last = i;
  48.             } else if (i[0] > last[1]){
  49.                 r.add(last);
  50.                 last = i;
  51.             } else if (i[1] > last[1]){
  52.                 last[1] = i[1];
  53.             }
  54.         }
  55.         if (last != null) r.add(last);
  56.  
  57.         return r.toArray(new int [r.size()][2]);
  58.     }
  59. }
Advertisement
Add Comment
Please, Sign In to add comment