给你一个会议时间安排的数组 intervals ,每个会议时间都会包括开始和结束的时间 intervals[i] = [starti, endi] ,返回 所需会议室的最小数量 。
示例 1:
输入:intervals = [[0,30],[5,10],[15,20]]
输出:2
示例 2:
输入:intervals = [[7,10],[2,4]]
输出:1
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/meeting-rooms-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题解:转化为上下车问题
class Solution {
public int minMeetingRooms(int[][] intervals) {
int n = intervals.length;
//把所有会议的开始时间和结束时间存入两个数组,并且各自升序排序
int[] startArr = new int[n];
int[] endArr = new int[n];
for (int i = 0; i < n; i++) {
startArr[i] = intervals[i][0];
endArr[i] = intervals[i][1];
}
Arrays.sort(startArr);
Arrays.sort(endArr);
int res=0;
int i=0;
int j=0;
for( ; i< n ; i++ ){
if(startArr[i]<endArr[j]){
res++;
}else{
j++;
}
}
return res;
}
}