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)

浙公网安备 33010602011771号