方法:贪心算法
具体步骤:
- 使用两个辅助数组分别存储节目的开始时间和结束时间;
- 对上面两个数组进行排序(从小到大)
- 遍历n个活动,如果某个活动开始的时间大于之前活动结束的时候,当前主持人就够了,活动结束时间往后一个。若是出现之前活动结束时间晚于当前活动开始时间的,则需要增加主持人。
时间复杂度:o(nlog2n),排序时间需要o(nlog2n)。
空间复杂度:o(n)
class Solution {
public:
int minmumNumberOfHost(int n, vector<vector<int> >& startEnd) {
vector<int> start;
vector<int> end;
for (int i = 0; i < startEnd.size(); i++) {
start.push_back(startEnd[i][0]);
end.push_back(startEnd[i][1]);
}
sort(start.begin(), start.end());
sort(end.begin(), end.end());
int j = 0;
int res = 0;
for (int i = 0; i < start.size(); i++) {
if (start[i] >= end[j])
j++;
else
res++;
}
return res;
}
};

京公网安备 11010502036488号