Only tracking the minimum of end time seems work for me.
Any ideas of what I might miss?
def min_meeting_rooms(meetings):
meetings.sort(key = lambda x: x.start)
rooms = 1
min_end_time = meetings[0].end
for i in range(1, len(meetings)):
if meetings[i - 1].end > meetings[i].start:
if min_end_time > meetings[i].start:
rooms += 1
min_end_time = min(min_end_time, meetings[i].end)
return rooms