当前位置:网站首页>LeetCode中等题之我的日程安排表 I
LeetCode中等题之我的日程安排表 I
2022-07-07 04:47:00 【·星辰大海】
题目
实现一个 MyCalendar 类来存放你的日程安排。如果要添加的日程安排不会造成 重复预订 ,则可以存储这个新的日程安排。
当两个日程安排有一些时间上的交叉时(例如两个日程安排都在同一时间内),就会产生 重复预订 。
日程可以用一对整数 start 和 end 表示,这里的时间是半开区间,即 [start, end), 实数 x 的范围为, start <= x < end 。
实现 MyCalendar 类:
MyCalendar() 初始化日历对象。
boolean book(int start, int end) 如果可以将日程安排成功添加到日历中而不会导致重复预订,返回 true 。否则,返回 false 并且不要将该日程安排添加到日历中。
示例:
输入:
[“MyCalendar”, “book”, “book”, “book”]
[[], [10, 20], [15, 25], [20, 30]]
输出:
[null, true, false, true]
解释:
MyCalendar myCalendar = new MyCalendar();
myCalendar.book(10, 20); // return True
myCalendar.book(15, 25); // return False ,这个日程安排不能添加到日历中,因为时间 15 已经被另一个日程安排预订了。
myCalendar.book(20, 30); // return True ,这个日程安排可以添加到日历中,因为第一个日程安排预订的每个时间都小于 20 ,且不包含时间 20 。
提示:
0 <= start < end <= 10^9
每个测试用例,调用 book 方法的次数最多不超过 1000 次。
来源:力扣(LeetCode)
解题思路
用一个最简单的方法来记录一下。
class MyCalendar:
def __init__(self):
self.record=[]
def book(self, start: int, end: int) -> bool:
if not self.record:
self.record.append([start,end])
return True
else:
for i in self.record:
if i[0]<end and i[1]>start:
return False
self.record.append([start,end])
return True
# Your MyCalendar object will be instantiated and called as such:
# obj = MyCalendar()
# param_1 = obj.book(start,end)
边栏推荐
- 【数字IC验证快速入门】15、SystemVerilog学习之基本语法2(操作符、类型转换、循环、Task/Function...内含实践练习)
- Problem solving: unable to connect to redis
- Linux server development, detailed explanation of redis related commands and their principles
- 【数字IC验证快速入门】14、SystemVerilog学习之基本语法1(数组、队列、结构体、枚举、字符串...内含实践练习)
- 解决问题:Unable to connect to Redis
- QT learning 26 integrated example of layout management
- Visualization Document Feb 12 16:42
- Li Kou interview question 04.01 Path between nodes
- Roulette chart 2 - writing of roulette chart code
- 【VHDL 并行语句执行】
猜你喜欢
2022 welder (elementary) judgment questions and online simulation examination
央视太暖心了,手把手教你写HR最喜欢的简历
Custom class loader loads network class
Li Kou interview question 04.01 Path between nodes
JS quick start (I)
Detailed explanation of Kalman filter for motion state estimation
Yugu p1020 missile interception (binary search)
misc ez_ usb
Ansible
You Li takes you to talk about C language 6 (common keywords)
随机推荐
2022茶艺师(初级)考试题模拟考试题库及在线模拟考试
Leetcode 40: combined sum II
【VHDL 并行语句执行】
Cnopendata list data of Chinese colleges and Universities
Quickly use Jacobo code coverage statistics
Chip information website Yite Chuangxin
[OBS] win capture requires winrt
LeetCode 90:子集 II
【数字IC验证快速入门】14、SystemVerilog学习之基本语法1(数组、队列、结构体、枚举、字符串...内含实践练习)
[quick start of Digital IC Verification] 15. Basic syntax of SystemVerilog learning 2 (operators, type conversion, loops, task/function... Including practical exercises)
Explore Cassandra's decentralized distributed architecture
[VHDL parallel statement execution]
PHP exports millions of data
探索Cassandra的去中心化分布式架构
SQL优化的魅力!从 30248s 到 0.001s
LeetCode 40:组合总和 II
php导出百万数据
微信小程序基本组件使用介绍
【数字IC验证快速入门】17、SystemVerilog学习之基本语法4(随机化Randomization)
Hands on deep learning (IV) -- convolutional neural network CNN