• 1065. 我的日程安排表 I


    描述

    实现MyCalendar类来存储您的活动。 如果新添加的活动没有重复,则可以添加。

    你的类将有方法book(int start,int end)。 这代表左闭右开的间隔[start,end)有了预定,范围内的实数x,都满足start <= x < end。

    当两个事件有一些非空交集时(即,两个事件在共同的时间都有预定),就会发生重复预订。

    每次调用MyCalendar.book方法时,如果没有发生重复预定,那么事件可以成功添加到日历,且返回true。 否则,返回false,并且事件不会添加到日历中。

    你的类以此方式被调用:MyCalendar cal = new MyCalendar(); MyCalendar.book(start, end);

    每个测试样例调用 MyCalendar.book 的次数最多为 1000。
    调用MyCalendar.book(start, end)时, start 和 end 都是 [0, 10^9]范围内的整数。

    样例

    MyCalendar();
    MyCalendar.book(10, 20); // 返回true
    MyCalendar.book(15, 25); // 返回false
    MyCalendar.book(20, 30); // 返回true
    解释:
    第一个事件可以预定。 第二个不行,因为15已经被预定。
    第三个事件可以预定,因为第一个事件预定了20以前的时间,但不包括20.

    class MyCalendar {
    public:
    
    	map<int,int> store;
    	MyCalendar() {
     
    	}
    	bool book(int start, int end) {
    		auto next = store.lower_bound(start);
    		if (next!=store.end() && next->first < min(end, next->second)) return false;
    		if (next!=store.begin() && start < min((--next)->second, end)) return false;
    		store.emplace(start, end);
    		return true;
    	}
    
    };
    
    /**
     * Your MyCalendar object will be instantiated and called as such:
     * MyCalendar obj = new MyCalendar();
     * bool param_1 = obj.book(start,end);
     */
    
  • 相关阅读:
    HFun.快速开发平台(一)=》简述
    技术分工论批判(要义)
    后产品意识形态
    鼠标悬停显示图片
    那些特殊边框效果在报表中要怎样实现?
    润乾报表美化设置 -- 样式
    润乾报表如何从 mongodb 中取数
    数据采集录入填报时如何只更新当前修改行
    数据采集填报中自动计算的指标如何做
    数据报表多种序号生成方式
  • 原文地址:https://www.cnblogs.com/narjaja/p/10044139.html
Copyright © 2020-2023  润新知