Back to Dashboard

Meeting Rooms II

Hard

Problem Statement

Given an array of meeting time intervals consisting of start and end times [[s1,e1],[s2,e2],...], find the minimum number of conference rooms required.

Examples

Example 1:

  • Input: intervals = [[0,30],[5,10],[15,20]]
  • Output: 2

Approach 1 Min Heap:

/*class Meeting {
  int start;
  int end;

  public Meeting(int start, int end) {
    this.start = start;
    this.end = end;
  }
};*/

 public int findMinimumMeetingRooms(List<Meeting> meetings) {
    int minRooms = 1;
    Collections.sort(meetings, (a, b) -> a.start - b.start);
    var currentMeetings = new PriorityQueue<Meeting>((m1, m2) -> m1.end - m2.end);
    for (var meeting: meetings) {
      while (!currentMeetings.isEmpty() && currentMeetings.peek().end <= meeting.start) {
        currentMeetings.poll();
      }
      currentMeetings.offer(meeting);
      minRooms = Math.max(minRooms, currentMeetings.size());
    }
    return minRooms;
  }
}

Status

Solved

Complexity

Time
O(n log n)
Space
O(n)

Tags

ArrayMerge IntervalsHeap

Date

2026-02-25
View Problem Source