darekfive

Interval Max Overlap

Mar 5th, 2025
831
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.03 KB | None | 0 0
  1. class Solution {
  2.     public int minMeetingRooms(int[][] intervals) {
  3.         Arrays.sort(intervals, (a, b) -> a[0] - b[0]);
  4.         PriorityQueue<Integer> pq = new PriorityQueue<>();
  5.         int maxSize = 0, start = -1, end = -1;
  6.  
  7.         for (int[] i : intervals) {
  8.             while (!pq.isEmpty() && pq.peek() <= i[0]) {
  9.                 if (pq.size() == maxSize) {
  10.                     end = pq.peek(); // last active meeting's end before drop
  11.                 }
  12.                 pq.poll();
  13.             }
  14.  
  15.             pq.offer(i[1]);
  16.  
  17.             if (pq.size() > maxSize) {
  18.                 maxSize = pq.size();
  19.                 start = i[0]; // track the start of the max overlap range
  20.             }
  21.         }
  22.  
  23.         // Handle case where the last interval is part of the max overlap
  24.         if (pq.size() == maxSize) {
  25.             end = pq.peek(); // final end if the max overlap lasts until the end
  26.         }
  27.  
  28.         System.out.println("Max overlap was between " + start + " and " + end);
  29.         return maxSize;
  30.     }
  31. }
  32.  
Advertisement