729. 我的日程安排表 I

exiaohu 于 2022-07-05 发布

题目链接:729. 我的日程安排表 I

用一个有序列表来存储日程。

from sortedcontainers import SortedList


class MyCalendar:
    def __init__(self):
        self.events = SortedList()

    def book(self, start: int, end: int) -> bool:
        if not self.events:
            self.events.add((start, end))
            return True

        i = self.events.bisect_left((start, end))
        if (0 <= i < len(self.events)) and self.events[i][0] == start:
            return False

        if (not (0 <= i - 1 < len(self.events)) or self.events[i - 1][1] <= start) \
                and (not (0 <= i < len(self.events)) or self.events[i][0] >= end):
            self.events.add((start, end))
            return True

        return False