Description
https://leetcode.com/problems/meeting-rooms/
Given an array of meeting time intervals
where intervals[i] = [starti, endi]
, determine if a person could attend all meetings.
Example 1:
Input: intervals = [[0,30],[5,10],[15,20]] Output: false
Example 2:
Input: intervals = [[7,10],[2,4]] Output: true
Constraints:
0 <= intervals.length <= 104
intervals[i].length == 2
0 <= starti < endi <= 106
Explanation
Sort intervals base on starting time first. Then check any interval overlaps with the previous interval.
Python Solution
class Solution:
def canAttendMeetings(self, intervals: List[List[int]]) -> bool:
intervals = sorted(intervals, key=lambda interval:interval[0])
prev = None
for interval in intervals:
if prev and interval[0] < prev[1]:
return False
prev = interval
return True
- Time Complexity: O(Nlog(N)).
- Space Complexity: O(1).