Skip to main content

253. Meeting Rooms II

Description

Given an array of meeting time intervals intervals where intervals[i] = [starti, endi], return the minimum number of conference rooms required.

Example 1:

Input: intervals = [0,30],[5,10],[15,20](./0,30%5D,%5B5,10%5D,%5B15,20.md)
Output: 2

Example 2:

Input: intervals = [7,10],[2,4](./7,10%5D,%5B2,4.md)
Output: 1

Constraints:

  • 1 <= intervals.length <= 104
  • 0 <= starti < endi <= 106

Solution

Language: TypeScript

  const ends = intervals.map(([_, end]) => end).sort((a, b) => a - b)
  let ans = 0
  let tempAns = ans
  while (starts.length) {
    if (starts[0] < ends[0]) {
      starts.shift()
      tempAns++
    } else {
      ends.shift()
      tempAns--
    }
    ans = Math.max(ans, tempAns)
  }
  return ans
};

/**、
1. 形象理解
[0,30],[5,10],[15,20](./0,30%5D,%5B5,10%5D,%5B15,20.md)
0            -           30
    5   -  10
                15  -  20

同一时间内,最多有多少个同时进行的 meeting

2. 考虑一个特殊情况
[1, 2], [2, 3](./1,%C2%A02%5D,%C2%A0%5B2,%C2%A03.md)
这个时候预期要做区分,本题目是 不考虑,计算为只需要一个房间

参考

https://www.youtube.com/watch?v=FdzJmTCVyJU