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