会议室

作者: 李海游 | 来源:发表于2020-04-16 22:07 被阅读0次

    会议室

    一些项目要占用一个会议室宣讲,会议室不能同时容纳两个项目 的宣讲。 给你每一个项目开始的时间和结束的时间(给你一个数 组,里面 是一个个具体的项目),你来安排宣讲的日程,要求会 议室进行 的宣讲的场次最多。返回这个最多的宣讲场次.

    思路:

    若要使举办会议的场次最多,则应该先举办最早结束的场次。故可以先按截止时间排序,遍历排序后的数据,如果开始时间大于当前时间则跳过该会议,否则当前时间等于该会议结束的时间。

    class Solution {
    public:
        bool compare(vector<vector<int>> a,vector<vector<int>> b)  //设计比较方式
        {
            if(a[0][1]!=b[0][1])
                return a[0][1]<b[0][1];
            else
                return a[0][0]<b[0][0];
        }
        int minMeetingRooms(vector<vector<int>>& intervals) {
            sort(intervals.begin(), intervals.end(), compare); //调用自定义比较方式的sort函数
            int cur=-1; //设定当前时间
            int n=0;  //能举办的次数
            for (int i = 0; i < intervals.size(); i++) {
                if (cur<=intervals[i][0]) {   //当前时间小于等于开始时间,举办该会议
                    ++n; 
                    cur=intervals[i][1];  //举办后 当前时间等于该会议的结束时间
                }
            }
            return n;
        }
    };
    

    小知识:

    1. 自定义sort函数的比较器compare,传入sort时不带参数

    相关文章

      网友评论

          本文标题:会议室

          本文链接:https://www.haomeiwen.com/subject/nodjvhtx.html