mirror of
https://github.com/autistic-symposium/master-algorithms-py.git
synced 2025-04-29 12:16:14 -04:00
Update and rename free_rooms.py to non_overlapping_invervals.py
This commit is contained in:
parent
9077029939
commit
e7d19505dc
@ -1,30 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
# author: bt3gl
|
||||
|
||||
|
||||
'''
|
||||
Given an array of meeting time intervals intervals
|
||||
where intervals[i] = [starti, endi], return the
|
||||
minimum number of conference rooms required.
|
||||
'''
|
||||
|
||||
def min_meeting_rooms(intervals):
|
||||
|
||||
if not intervals:
|
||||
return 0
|
||||
|
||||
free_rooms = []
|
||||
|
||||
intervals.sort(key= lambda x: x[0])
|
||||
|
||||
heapq.heappush(free_rooms, intervals[0][-1])
|
||||
|
||||
for i in intervals[1:]:
|
||||
|
||||
if free_rooms[0] <= i[0]:
|
||||
heapq.heappop(free_rooms)
|
||||
|
||||
heapq.heappush(free_rooms, i[1])
|
||||
|
||||
return len(free_rooms)
|
22
heaps/non_overlapping_invervals.py
Normal file
22
heaps/non_overlapping_invervals.py
Normal file
@ -0,0 +1,22 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
# author: bt3gl
|
||||
|
||||
|
||||
def non_overlapping_invervals(intervals):
|
||||
|
||||
if not intervals:
|
||||
return 0
|
||||
|
||||
result = []
|
||||
intervals.sort(key=lambda x: x[0])
|
||||
heapq.heappush(result, intervals[0][-1])
|
||||
|
||||
for interval in intervals[1:]:
|
||||
|
||||
if result[0] <= interval[0]:
|
||||
heapq.heappop(result)
|
||||
|
||||
heapq.heappush(result, interval[1])
|
||||
|
||||
return len(result)
|
Loading…
x
Reference in New Issue
Block a user