My Calendar I

题目

对很多个事件(具有开始和结束两个属性),判断是否能够安排

思路

使用map进行记录开始和结束

1
map<int,int>m;

前面是结束事件,后面是开始事件,在map中的存放的数据是有序的。
直接对开始事件进行查找,如果end比其大,那么返回0

1
2
3
4
5
6
7
8
9
10
11
12
13
class MyCalendar {
public:
map<int, int>m;
MyCalendar() {
}

bool book(int start, int end) {
auto next = m.upper_bound(start);
if (next != m.end() && (*next).second < end) return 0;
m.insert({end, start});
return 1;
}
};