题解 | 主持人调度(一)

主持人调度(一)

https://www.nowcoder.com/practice/e160b104354649b69600803184094adb?tpId=0&difficulty=&judgeStatus=&tags=&title=%E4%B8%BB%E6%8C%81%E4%BA%BA&sourceUrl=&gioEnter=menu

一.题目解析

题目还是很好理解的。目前只有一个主持人,但是有多个活动需要主持,如果这些活动时间互不牵扯,则主持人可以主持所有活动,返回true;反之活动时间交叉,则主持人无法主持所有活动,返回false

二.算法原理

第一次想到的就是,只要第二个活动的开始时间,大于等于前一场活动的结束时间就行了。

但是有的示例中,活动是随机的,并没有按照时间的递增关系排列:

所以应该先将活动进行排序,将开始时间早的活动放到前面,这样再采用之前的比较就万无一失了。

class Solution 
{
public:
    bool hostschedule(vector<vector<int> >& schedule) 
    {
        sort(schedule.begin(),schedule.end());

        int i = 0;
        for (i = 1; i < schedule.size(); ++i)
        {
            if(schedule[i][0] < schedule[i-1][1]) return false;
        }
        return true;
    }
};
全部评论

相关推荐

小浪_Coding:个人技能一条测试没有
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务