Problem Description

Given an array of meeting time intervals consisting of start and end times [[s1,e1],[s2,e2],...] (si < ei) , find the minimum number of conference rooms required.)

Examples

Example1

Input: intervals = [(0,30),(5,10),(15,20)]
Output: 2
Explanation:
We need two meeting rooms
room1: (0,30)
room2: (5,10),(15,20)

Example2

Input: intervals = [(2,7)]
Output: 1
Explanation:
Only need one meeting room

解析

給定一個 2D 陣列 intervals

每個 intervals[i] = [ $start_i$, $end_i$] 代表一個時間區間 $start_i$ ≤ time < $end_i$fu

假設遇到兩個時間區間重疊了,就必須要多開一間房間

要求寫一個演算法計算最少需要開幾間房間才能順利舉行所有會議

當會議開始則需要開啟一間房間

因為要開最少房間,所以會議結束會關閉一個房間

具體作法如下圖:

Untitled

一開始我們需要把所有 intervals 的開始與結束時間放在兩個陣列 start, end

然後把 start, end 由小至大做排序