732. 我的日程安排表 III

当 k 个日程存在一些非空交集时(即, k 个日程包含了一些相同时间),就会产生 k 次预订。

给你一些日程安排 [startTime, endTime) ,请你在每个日程安排添加后,返回一个整数 k ,表示所有先前日程安排会产生的最大 k 次预订。

实现一个 MyCalendarThree 类来存放你的日程安排,你可以一直添加新的日程安排。

  • MyCalendarThree() 初始化对象。
  • int book(int startTime, int endTime) 返回一个整数 k ,表示日历中存在的 k 次预订的最大值。

 

复制代码
class MyCalendarThree:

    def __init__(self):
        self.d = SortedDict()

    def book(self, startTime: int, endTime: int) -> int:
        self.d[startTime] = self.d.setdefault(startTime, 0) + 1
        self.d[endTime] = self.d.setdefault(endTime, 0) - 1
        ans = maxbook = 0
        for freq in self.d.values():
            maxbook += freq
            ans = max(ans, maxbook)
        return ans
# Your MyCalendarThree object will be instantiated and called as such:
# obj = MyCalendarThree()
# param_1 = obj.book(startTime,endTime)
复制代码

 

posted @   xiaoxinlong  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· 【全网最全教程】使用最强DeepSeekR1+联网的火山引擎,没有生成长度限制,DeepSeek本体
AmazingCounters.com
点击右上角即可分享
微信分享提示