--- id: interval title: Interval --- - Given a list of schedules, provide a list of times that are available for a meeting. ``` [ [[4,5], [6,10], [12,14]], [[4,5], [5,9], [13,16]], [[11,14]] ] Example Output: [[0,4], [11,12], [16,23]] ``` - You have a number of meetings (with their start and end times). You need to schedule them using the minimum number of rooms. Return the list of meetings in every room. - Interval ranges: - Given 2 interval ranges, create a function to tell me if these ranges intersect. Both start and end are inclusive: `[start, end]` - E.g. `[1, 4]` and `[5, 6]` => `false` - E.g. `[1, 4]` and `[3, 6]` => `true` - Given 2 interval ranges that intersect, now create a function to merge the 2 ranges into a single continuous range. - E.g. `[1, 4]` and `[3, 6]` => `[1, 6]` - Now create a function that takes a group of unsorted, unorganized intervals, merge any intervals that intersect and sort them. The result should be a group of sorted, non-intersecting intervals. - Now create a function to merge a new interval into a group of sorted, non-intersecting intervals. After the merge, all intervals should remain non-intersecting. - Given a list of meeting times, check if any of them overlap. The follow-up question is to return the minimum number of rooms required to accommodate all the meetings. - [Source](http://blog.gainlo.co/index.php/2016/07/12/meeting-room-scheduling-problem/) - If you have a list of intervals, how would you merge them? - E.g. `[1, 3], [8, 11], [2, 6]` => `[1, 6], [8-11]`