JavaScript Algorithms: Meeting Rooms (LeetCode)
Description
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
Solution
I came up with a brute force solution when I had seen this question the first time. We can go through the intervals
array and create a Set
with all busy minutes. And if we see a minute that is already in Set
we’re going to return false
, otherwise return true
.
Let’s look at examples:
Let’s try to implement it

So, according to the constraints, the time complexity is O(n * m)
, where n
is the number of intervals
and m
is the difference between starti
and endi
. The space complexity is O(n)
where n
is the number of all differences between starti
and endi
.
Let’s think about how we can improve this algorithm. What if we sort it by starti
in advance?
After that we can check that each meeting ends before the new starts:
The time complexity is O(nlogn)
because of sort and space complexity is O(n)
.

I hope, it was useful for you. Thanks for reading! Looking forward to your feedback. See you soon ✌️