方法:贪心算法
具体步骤:
- 使用两个辅助数组分别存储节目的开始时间和结束时间;
- 对上面两个数组进行排序(从小到大)
- 遍历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; } };