729. 我的日程安排表 I

实现一个 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 <= 109
每个测试用例,调用 book 方法的次数最多不超过 1000 次。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/my-calendar-i
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

代码:

from leetcode_python.utils import *class MyCalendar:def __init__(self):self.books = []def book(self, start: int, end: int) -> bool:for s,e in self.books:if s<end and start<e: return Falseself.books.append([start,end])return Truedef test(data_test):s = MyCalendar()data = data_test  # normal# data = [list2node(data_test[0])]  # list转nodereturn s.getResult(*data)def test_obj(data_test):result = [None]obj = MyCalendar(*data_test[1][0])for fun, data in zip(data_test[0][1::], data_test[1][1::]):if data:res = obj.__getattribute__(fun)(*data)else:res = obj.__getattribute__(fun)()result.append(res)return resultif __name__ == '__main__':datas = [# [["MyCalendar","book","book","book","book","book"],[[],[37,50],[33,50],[4,17],[35,48],[8,25]]],# [null,true,false,true,false,false][["MyCalendar", "book", "book", "book", "book", "book", "book", "book", "book", "book", "book", "book", "book","book", "book", "book", "book", "book", "book", "book", "book"],[[], [97, 100], [33, 51], [89, 100], [83, 100], [75, 92], [76, 95], [19, 30], [53, 63], [8, 23], [18, 37],[87, 100], [83, 100], [54, 67], [35, 48], [58, 75], [70, 89], [13, 32], [44, 63], [51, 62], [2, 15]]],]for data_test in datas:t0 = time.time()print('-' * 50)print('input:', data_test)print('output:', test_obj(data_test))print(f'use time:{time.time() - t0}s')

备注:
GitHub:https://github.com/monijuan/leetcode_python

CSDN汇总:模拟卷Leetcode 题解汇总_卷子的博客-CSDN博客

可以加QQ群交流:1092754609

leetcode_python.utils详见汇总页说明
先刷的题,之后用脚本生成的blog,如果有错请留言,我看到了会修改的!谢谢!

模拟卷Leetcode【普通】729. 我的日程安排表 I相关推荐

  1. 模拟卷Leetcode【普通】198. 打家劫舍

    198. 打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报 ...

  2. 模拟卷Leetcode【普通】714. 买卖股票的最佳时机含手续费

    714. 买卖股票的最佳时机含手续费 给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 :整数 fee 代表了交易股票的手续费用. 你可以无限次地完成交易,但是你每笔交易都 ...

  3. 模拟卷Leetcode【普通】1109. 航班预订统计

    1109. 航班预订统计 这里有 n 个航班,它们分别从 1 到 n 进行编号. 有一份航班预订表 bookings ,表中第 i 条预订记录 bookings[i] = [firsti, lasti ...

  4. 模拟卷Leetcode【普通】377. 组合总和 Ⅳ

    377. 组合总和 Ⅳ 给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target .请你从 nums 中找出并返回总和为 target 的元素组合的个数. 题目数据保证答案符合 32 ...

  5. 模拟卷Leetcode【普通】049. 字母异位词分组

    049. 字母异位词分组 给你一个字符串数组,请你将 字母异位词 组合在一起.可以按任意顺序返回结果列表. 字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母都恰好只用一次. 示 ...

  6. 模拟卷Leetcode【普通】537. 复数乘法

    汇总:模拟卷Leetcode 题解汇总 537. 复数乘法 复数 可以用字符串表示,遵循 "实部+虚部i" 的形式,并满足下述条件: 实部 是一个整数,取值范围是 [-100, 1 ...

  7. 模拟卷Leetcode【普通】1705. 吃苹果的最大数目

    1705. 吃苹果的最大数目 有一棵特殊的苹果树,一连 n 天,每天都可以长出若干个苹果.在第 i 天,树上会长出 apples[i] 个苹果,这些苹果将会在 days[i] 天后(也就是说,第 i ...

  8. 模拟卷Leetcode【普通】2013. 检测正方形

    汇总:模拟卷Leetcode 题解汇总 2013. 检测正方形 给你一个在 X-Y 平面上的点构成的数据流.设计一个满足下述要求的算法: 添加 一个在数据流中的新点到某个数据结构中.可以添加 重复 的 ...

  9. 模拟卷Leetcode【普通】036. 有效的数独

    036. 有效的数独 请你判断一个 9x9 的数独是否有效.只需要 根据以下规则 ,验证已经填入的数字是否有效即可. 数字 1-9 在每一行只能出现一次. 数字 1-9 在每一列只能出现一次. 数字 ...

  10. 模拟卷Leetcode【普通】347. 前 K 个高频元素

    347. 前 K 个高频元素 给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素.你可以按 任意顺序 返回答案. 示例 1: 输入: nums = [1,1,1,2,2 ...

最新文章

  1. iOS OpenCV 图像灰度处理
  2. 同样是程序员,优秀的程序员能够月入5万甚至50万!,一般的程序员却只能月入5千甚至更低?那么他们差别在哪里呢?
  3. Java 8 获取某天最大(23:59:59)最小(00:00:00)时间
  4. CentOS 初体验二十三:redis常用命令:List
  5. C++ Unicode和ANSII转换
  6. java外卖系统源码_JAVAWEB校园订餐系统项目源码 一个外卖点餐系统 - 下载 - 搜珍网...
  7. php soap function,从PHP SoapServer返回PHP数组
  8. 切换google的公共库缓解网站访问慢的问题
  9. lin通讯从节点同步间隔场_LIN总线入门
  10. FastNetMon 使用笔记
  11. nRF52840学习-初识1-1
  12. 知识图谱 helloword
  13. total commander最近修改标红
  14. JavaScript|日期格式化、今天、昨天、明天和某天
  15. PHP判定浏览器UA进行跳转
  16. python初学入门操作
  17. 彼泽清陂nbsp;菡萏悠悠
  18. 887. 鸡蛋掉落(困难)-动态规划
  19. 网站优化(提高网站访问量)
  20. RouterOS 固定IP接入上网设置教程(超详细)

热门文章

  1. React组件通信-父子组件间的通信
  2. Bad Request This combination of host and port requires TLS. postman
  3. 港股相关交易规则与业务知识
  4. Symbol 数据类型
  5. Debain查看ip地址
  6. ESP8266作为无线串口设置
  7. 纯干货:微软漏洞中国第一人黄正——如何用正确姿势挖掘浏览器漏洞(附完整 PPT)
  8. 喷血之举--割肉之痛
  9. vue 项目完美运行在IE或者360浏览器兼容模式下 踩坑笔记
  10. Mongodb模式设计