开始之前先给自己打个鸡血吧:
A journey of a thousand miles begins with a single step. 千里之行始于足下。
题源:https://leetcode.cn/problems/my-calendar-i/
题目详情:
实现一个 MyCalendar 类来存放你的日程安排。如果要添加的日程安排不会造成 重复预订 ,则可以存储这个新的日程安排。
当两个日程安排有一些时间上的交叉时(例如两个日程安排都在同一时间内),就会产生 重复预订 。
日程可以用一对整数 start 和 end 表示,这里的时间是半开区间,即 [start, end), 实数 x 的范围为, start <= x < end 。
实现 MyCalendar 类:
MyCalendar() 初始化日历对象。
boolean book(int start, int end) 如果可以将日程安排成功添加到日历中而不会导致重复预订,返回 true 。否则,返回 false 并且不要将该日程安排添加到日历中。
思路
区间比较去掉重复值
代码
python
class MyCalendar(object):
def __init__(self):
self.calender = []
def book(self, start, end):
"""
:type start: int
:type end: int
:rtype: bool
"""
for item in self.calender:
left=item[0]
right=item[1]
if start>=left and start<right:
return False
if end>left and end<=right:
return False
if start<=left and end>=right:
return False
self.calender.append([start,end])
return True