Meeting Rooms

Given an array of meeting time intervals [start, end], determine if a person could attend all meetings (no two meetings overlap).

Example 1
Input: [[0,30],[5,10],[15,20]] → Output: false
Example 2
Input: [[7,10],[2,4]] → Output: true

Solution Approach

Sort by start time. Check if any consecutive pair overlaps: intervals[i].start < intervals[i-1].end.

  • Sort by start time.
  • For i from 1 to n-1: if intervals[i][0] < intervals[i-1][1] return false.
  • Return true.
Java
import java.util.*;

class Solution {
    public boolean canAttendMeetings(int[][] intervals) {
        Arrays.sort(intervals, (a,b) -> a[0] - b[0]);
        for (int i = 1; i < intervals.length; i++)
            if (intervals[i][0] < intervals[i-1][1]) return false;
        return true;
    }
}
  • Time Complexity: O(N log N)
  • Space Complexity: O(1)