Meeting Rooms II - Interval scheduling
Given an array of meeting time intervals intervals where intervals[i] = [starti, endi], return the minimum number of conference rooms required.
class Solution:
def minMeetingRooms(self, intervals: List[Interval]) -> bool:
intervals.sort(key=lambda i: i.start)
for i in range(1, len(intervals)):
i1 = intervals[i - 1]
i2 = intervals[i]
if i1.end > i2.start:
return False
return True
#gigabrain solution
class Solution:
def minMeetingRooms(self, intervals: List[List[int]]) -> int:
delta = [0] * 1000010
for start, end in intervals:
delta[start] += 1
delta[end] -= 1
return max(accumulate(delta))
#cute line trace solution
class Solution2(object):
def minMeetingRooms(self, intervals):
meetings = []
for i in intervals:
meetings.append((i.start, 1))
meetings.append((i.end, 0))
meetings.sort()
ans = 0
count = 0
for meeting in meetings:
if meeting[1] == 1:
count += 1
else:
count -= 1
ans = max(ans, count)
return ans
Posted by Jamie Meyer 19 days ago