Read-only web browser

Solutions

Browse the interview solutions folder with syntax highlighting.

meeting-rooms.py

intervals/meeting-rooms.py · Python · 797 B · 2026-02-01 17:34

Back to folder
# Sort meetings by start time and then loop checking the adjacent ones for overlap.    
# intervals

# O(n log n) time, O(1) space
def canAttendMeetings(intervals: list[list[int]]) -> bool:
    intervals.sort(key=lambda x: x[0])
    for i in range(1, len(intervals)):
        if intervals[i][0] < intervals[i-1][1]:
            return False
    return True

# Brute force: O(n^2) time, O(1) space
def canAttendMeetings(intervals: list[list[int]]) -> bool:
    n = len(intervals)
    for i in range(n):
        A = intervals[i]
        for j in range(i + 1, n):
            B = intervals[j]
            if min(A[1], B[1]) > max(A[0], B[0]): # minimum of ends is greatest than the maximum of starts
            # or: A.end > B.start and A.start < B.start
                return False
    return True