Search
⌘K
Get Premium
Intervals

Can Attend Meetings

easy

DESCRIPTION (inspired by Leetcode.com)

Write a function to check if a person can attend all the meetings scheduled without any time conflicts. Given an array intervals, where each element [s1, e1] represents a meeting starting at time s1 and ending at time e1, determine if there are any overlapping meetings. If there is no overlap between any meetings, return true; otherwise, return false.

Note that meetings ending and starting at the same time, such as (0,5) and (5,10), do not conflict.

Input:

intervals = [(1,5),(3,9),(6,8)]

Output:

false

Explanation: The meetings (1,5) and (3,9) overlap.

Input:

intervals = [(10,12),(6,9),(13,15)]

Output:

true

Explanation: There are no overlapping meetings, so the person can attend all.

Explanation

A person can attend all meetings if and only if none of the meetings overlap. By sorting the intervals by start time, we can easily check if any two consecutive intervals overlap.
We iterate over each interval, beginning with the second interval in the sorted list. We compare the start time of the current interval with the end time of the previous interval. If the start time of the current interval is less than the end time of the previous interval, then the two intervals overlap and the person cannot attend both meetings, so we return false.
][51][83
Two overlapping meeting intervals
Otherwise, the person can attend both meetings, and we continue to the next interval. If we reach the end of the list without finding any overlapping intervals, then the person can attend all meetings, and we return true.

Solution

|
list of intervals [start, end]
Try these examples:
Visualization
def canAttendMeetings(intervals):
if not intervals:
return True
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
][42][129][96][1513

can attend meetings

0 / 5

Test Your Knowledge

Login to take the complexity quiz and track your progress

Complexity Analysis

Time Complexity: O(n * logn) where n is the number of intervals. The time complexity is dominated by the sorting step.

Space Complexity: O(1) We are not using any extra space beyond a few variables.

Your account is free and you can post anonymously if you choose.

The best mocks on the market.

Now up to 15% off

Learn More
Reading Progress

On This Page