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 @ 2025-01-04 22:14  xiaoxinlong  阅读(16)  评论(0)    收藏  举报
AmazingCounters.com