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)