1.题目
给你一个会议时间安排的数组 intervals ,每个会议时间都会包括开始和结束的时间 intervals[i] = [starti, endi] ,为避免会议冲突,同时要考虑充分利用会议室资源,请你计算至少需要多少间会议室,才能满足这些会议安排。
示例 1:
输入:intervals = [[0,30],[5,10],[15,20]]
输出:2
示例 2:输入:intervals = [[7,10],[2,4]]
输出:1
提示:
1 <= intervals.length <= 104
0 <= starti < endi <= 106
2.解题思路
- 最一般的思路:用一个数组来表示所有时间点的人数,遍历每个上下车时间,在该时间段内的数组元素统统+1;最后统计数组中最大的元素即可
- 好一点的思路:思路同上下车问题,两个指针指向上车时间,下车时间;上车时候,总人数+1,下车时候,总人数-1;统计车上人数最多即可;上车时间和下车时间需要分别排序
int minMeetingRooms(vector< vector<int>>& intervals) {
int len =intervals.size();
sort(intervals