diff --git a/heaps/free_rooms.py b/heaps/free_rooms.py deleted file mode 100644 index 6e93abe..0000000 --- a/heaps/free_rooms.py +++ /dev/null @@ -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) diff --git a/heaps/non_overlapping_invervals.py b/heaps/non_overlapping_invervals.py new file mode 100644 index 0000000..0f5f04e --- /dev/null +++ b/heaps/non_overlapping_invervals.py @@ -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)