Skip to content

Commit 3765544

Browse files
Add 'Meeting Rooms'
1 parent 2dedc10 commit 3765544

File tree

3 files changed

+40
-0
lines changed

3 files changed

+40
-0
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ A collection of LeetCode solutions
6262

6363
[Maximum Subarray](./src/maximum_subarray.py)
6464

65+
[Meeting Rooms](./src/meeting_rooms.py)
66+
6567
[Merge Intervals](./src/merge_intervals.py)
6668

6769
[Merge k Sorted Lists](./src/merge_k_sorted_lists.py)

src/meeting_rooms.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
"""
2+
252. Meeting Rooms
3+
4+
https://leetcode.com/problems/meeting-rooms
5+
6+
NOTES
7+
* Simply sort and check for overlapping intervals.
8+
"""
9+
10+
11+
class Solution:
12+
def canAttendMeetings(self, intervals: list[list[int]]) -> bool:
13+
if not intervals:
14+
return True
15+
intervals.sort(key=lambda x: x[0])
16+
for i in range(len(intervals) - 1):
17+
if intervals[i][1] > intervals[i + 1][0]:
18+
return False
19+
return True

tests/test_meeting_rooms.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
"""
2+
252. Meeting Rooms
3+
4+
https://leetcode.com/problems/meeting-rooms
5+
"""
6+
7+
from unittest import TestCase
8+
9+
from src.meeting_rooms import Solution
10+
11+
12+
class TestSolution(TestCase):
13+
def test_1(self):
14+
exp = False
15+
assert Solution().canAttendMeetings([[0, 30], [5, 10], [15, 20]]) == exp
16+
17+
def test_2(self):
18+
exp = True
19+
assert Solution().canAttendMeetings([[7, 10], [2, 4]]) == exp

0 commit comments

Comments
 (0)