Advertisement
thewitchking

Untitled

Mar 20th, 2025
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.04 KB | None | 0 0
  1. public static int interval(List<Integer> first, List<Integer> last) {
  2.         int n = first.size();
  3.        
  4.         List<List<Integer>> combined = new ArrayList<>();
  5.         for (int i = 0; i < n; ++i) {
  6.             combined.add(Arrays.asList(first.get(i), last.get(i)));
  7.         }
  8.        
  9.         // Sorting intervals by `end`, then by `start`
  10.         Collections.sort(combined, Comparator.comparingInt((List<Integer> a) -> a.get(1))
  11.                 .thenComparingInt(a -> a.get(0)));
  12.        
  13.         List<Integer> res = new ArrayList<>();
  14.  
  15.         res.add(combined.get(0).get(1) - 1);
  16.         res.add(combined.get(0).get(1));
  17.  
  18.         for (int i = 1; i < n; i++) {
  19.             int start = combined.get(i).get(0);
  20.             int end = combined.get(i).get(1);
  21.  
  22.             if (start > res.get(res.size() - 1)) {
  23.                 res.add(end - 1);
  24.                 res.add(end);
  25.             }
  26.             else if (start > res.get(res.size() - 2)) {
  27.                 res.add(end);
  28.             }
  29.         }
  30.         return res.size();
  31.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement