Grokking the Coding Interview: Patterns for Coding Questions

0% completed

Solution: Problem Challenge 1: Minimum Meeting Rooms

Problem Statement

Given a list of intervals representing the start and end time of ‘N’ meetings, find the minimum number of rooms required to hold all the meetings.

Example 1:

Meetings: [[1,4], [2,5], [7,9]]
Output: 2
Explanation: Since [1,4] and [2,5] overlap, we need two rooms to hold these two meetings. [7,9] can occur in any of the two rooms later.

Example 2:

Meetings: [[6,7], [2,4], [8,12]]
Output: 1
Explanation: None of the meetings overlap, therefore we only need one room to hold all meetings.

Example 3:

Meetings: [[1,4], [2,3], [3,6]]

.....

.....

.....

Like the course? Get enrolled and start learning!
V

Vansh Arora

· 3 years ago

Code will be similar to merge intervals, but instead of replacing currentInterval with merged interval, we will set currentInterval to intersection of current and nextInterval.Please see code below and let me know if there are any issues with this approach:

static int findMinimumMeetingRooms(vector<Meeting> &meetings) {     sort(meetings.begin(), meetings.end(),       [] (const Meeting &first, const Meeting &second) { return first.start < second.start; });         int minRooms = 1, currentRooms = 1;     Meeting currentMeeting = meetings[0];     for (int next = 1; next < meetings.size(); next++) {       // If there is an overlap       if (meetings[next].start < currentMeeting.end) {         currentRooms++;         // Find intersection and set currentMeeting to the intersecti
Show 1 reply