0
0
DSA Pythonprogramming~20 mins

Meeting Rooms Problem Minimum Rooms Required in DSA Python - Practice Problems & Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Meeting Rooms Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Minimum meeting rooms needed for given intervals
What is the output of the following code that calculates the minimum number of meeting rooms required?
DSA Python
def minMeetingRooms(intervals):
    starts = sorted([i[0] for i in intervals])
    ends = sorted([i[1] for i in intervals])
    s, e = 0, 0
    rooms = 0
    while s < len(intervals):
        if starts[s] < ends[e]:
            rooms += 1
            s += 1
        else:
            e += 1
            s += 1
    return rooms

intervals = [[0, 30], [5, 10], [15, 20]]
print(minMeetingRooms(intervals))
A0
B2
C1
D3
Attempts:
2 left
💡 Hint
Think about how many meetings overlap at the same time.
Predict Output
intermediate
2:00remaining
Output for non-overlapping meetings
What is the output of this code for non-overlapping meeting intervals?
DSA Python
def minMeetingRooms(intervals):
    starts = sorted([i[0] for i in intervals])
    ends = sorted([i[1] for i in intervals])
    s, e = 0, 0
    rooms = 0
    while s < len(intervals):
        if starts[s] < ends[e]:
            rooms += 1
            s += 1
        else:
            e += 1
            s += 1
    return rooms

intervals = [[1, 2], [3, 4], [5, 6]]
print(minMeetingRooms(intervals))
A1
B2
C3
D0
Attempts:
2 left
💡 Hint
No meetings overlap here.
🔧 Debug
advanced
2:00remaining
Identify the error in meeting rooms calculation
What error does this code raise when run?
DSA Python
def minMeetingRooms(intervals):
    starts = sorted([i[0] for i in intervals])
    ends = sorted([i[1] for i in intervals])
    s, e = 0, 0
    rooms = 0
    while s < len(intervals):
        if starts[s] <= ends[e]:
            rooms += 1
            s += 1
        else:
            e += 1
    return rooms

intervals = [[0, 30], [5, 10], [15, 20]]
print(minMeetingRooms(intervals))
A0
BIndexError
C3
DTypeError
Attempts:
2 left
💡 Hint
Check the loop increments carefully.
🧠 Conceptual
advanced
1:30remaining
Why sorting start and end times separately helps?
Why do we sort start and end times separately when calculating minimum meeting rooms?
ATo compare meetings in chronological order and track overlaps efficiently
BTo find the longest meeting duration
CTo count total number of meetings only
DTo merge intervals into one big interval
Attempts:
2 left
💡 Hint
Think about how to detect overlaps by comparing start and end times.
Predict Output
expert
2:30remaining
Minimum rooms for complex overlapping intervals
What is the output of this code for complex overlapping intervals?
DSA Python
def minMeetingRooms(intervals):
    starts = sorted([i[0] for i in intervals])
    ends = sorted([i[1] for i in intervals])
    s, e = 0, 0
    rooms = 0
    max_rooms = 0
    while s < len(intervals):
        if starts[s] < ends[e]:
            rooms += 1
            max_rooms = max(max_rooms, rooms)
            s += 1
        else:
            rooms -= 1
            e += 1
    return max_rooms

intervals = [[1, 10], [2, 7], [3, 19], [8, 12], [10, 20], [11, 30]]
print(minMeetingRooms(intervals))
A4
B3
C5
D6
Attempts:
2 left
💡 Hint
Count maximum overlaps at any time.