题目要求
思路
1.先将开始时间和结束时间拆分放到两个数组中进行排序
2.如果开始的时间小于结束时间,说明目前没有空闲的人,需要增加人,如果大于等于,说明有人刚结束了主持,可以进行新的主持了,变更到下一个任务的结束的时间去安排人。
代码实现
class Solution {
public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** 计算成功举办活动需要多少名主持人* @param n int整型 有n个活动* @param startEnd int整型vector<vector<>> startEnd[i][0]用于表示第i个活动的开始时间,startEnd[i][1]表示第i个活动的结束时间* @return int整型*/int minmumNumberOfHost(int n, vector<vector<int> >& startEnd) {vector<int> start;vector<int> end;for(int i = 0; i < n; i++){start.push_back(startEnd[i][0]);end.push_back(startEnd[i][1]);}sort(start.begin(), start.end());sort(end.begin(), end.end());int res = 0;int j = 0;for(int i = 0; i < n; i++){if(start[i] >= end[j])j++;elseres++;}return res;}
};