实现一个 MyCalendar 类来存放你的日程安排。如果要添加的时间内没有其他安排,则可以存储这个新的日程安排。
MyCalendar 有一个 book(int start, int end)方法。它意味着在 start 到 end 时间内增加一个日程安排,注意,这里的时间是半开区间,即 [start, end), 实数 x 的范围为, start <= x < end。
当两个日程安排有一些时间上的交叉时(例如两个日程安排都在同一时间内),就会产生重复预订。
每次调用 MyCalendar.book方法时,如果可以将日程安排成功添加到日历中而不会导致重复预订,返回 true。否则,返回 false 并且不要将该日程安排添加到日历中。
请按照以下步骤调用 MyCalendar 类: MyCalendar cal = new MyCalendar(); MyCalendar.book(start, end)
示例 1:
MyCalendar();
MyCalendar.book(10, 20); // returns true
MyCalendar.book(15, 25); // returns false
MyCalendar.book(20, 30); // returns true
解释:
第一个日程安排可以添加到日历中. 第二个日程安排不能添加到日历中,因为时间 15 已经被第一个日程安排预定了。
第三个日程安排可以添加到日历中,因为第一个日程安排并不包含时间 20 。
说明:
- 每个测试用例,调用
MyCalendar.book函数最多不超过100次。 - 调用函数
MyCalendar.book(start, end)时,start和end的取值范围为[0, 10^9]。

本文介绍了一个名为MyCalendar的日程管理系统,通过book方法在指定的半开区间[start,end)内存储日程安排,确保没有时间上的交叉。当尝试添加的新日程与已有日程存在时间重叠时,系统会阻止添加并返回false。MyCalendar适用于处理不超过100次的book函数调用,且start和end参数范围在[0,10^9]之间。
219

被折叠的 条评论
为什么被折叠?



