当前位置:网站首页>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)
边栏推荐
- Technology cloud report: from robot to Cobot, human-computer integration is creating an era
- Button wizard script learning - about tmall grabbing red envelopes
- Linux server development, redis source code storage principle and data model
- Leetcode 43 String multiplication (2022.02.12)
- [webrtc] m98 Screen and Window Collection
- A bit of knowledge - about Apple Certified MFI
- 开源生态|打造活力开源社区,共建开源新生态!
- Codeforce c.strange test and acwing
- 微信小程序基本组件使用介绍
- Thinkcmf6.0 installation tutorial
猜你喜欢
Qt学习27 应用程序中的主窗口
QT learning 26 integrated example of layout management
2022年茶艺师(中级)考试试题及模拟考试
Force buckle 145 Binary Tree Postorder Traversal
Numbers that appear only once
Ansible
Explore dry goods! Apifox construction ideas
3D reconstruction - stereo correction
[quick start of Digital IC Verification] 17. Basic grammar of SystemVerilog learning 4 (randomization)
Li Kou interview question 04.01 Path between nodes
随机推荐
buuctf misc USB
LeetCode 90:子集 II
Leetcode 40: combined sum II
The principle and implementation of buffer playback of large video files
Rust versus go (which is my preferred language?)
Main window in QT learning 27 application
What are the positions of communication equipment manufacturers?
有 Docker 谁还在自己本地安装 Mysql ?
The configuration that needs to be modified when switching between high and low versions of MySQL 5-8 (take aicode as an example here)
Why should we understand the trend of spot gold?
青龙面板--花花阅读
追风赶月莫停留,平芜尽处是春山
Paddlepaddle 29 dynamically modify the network structure without model definition code (relu changes to prelu, conv2d changes to conv3d, 2D semantic segmentation model changes to 3D semantic segmentat
芯片 設計資料下載
[webrtc] M98 screen and window acquisition
2022焊工(初级)判断题及在线模拟考试
Visualization Document Feb 12 16:42
dash plotly
Leetcode 90: subset II
Who has docker to install MySQL locally?