From e7d19505dcc8e3036f2c6e72b92f1f31e9437182 Mon Sep 17 00:00:00 2001 From: bt3gl <138340846+bt3gl-cryptographer@users.noreply.github.com> Date: Tue, 8 Aug 2023 16:42:03 -0700 Subject: [PATCH] Update and rename free_rooms.py to non_overlapping_invervals.py --- heaps/free_rooms.py | 30 ------------------------------ heaps/non_overlapping_invervals.py | 22 ++++++++++++++++++++++ 2 files changed, 22 insertions(+), 30 deletions(-) delete mode 100644 heaps/free_rooms.py create mode 100644 heaps/non_overlapping_invervals.py 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)