我的日程安排表 I
我的日程安排表 I🟨
做题过程
想不到用哈希表存的其他方法,感觉最优的策略就是每次存储然后跟哈希表的每个entrySet
做比较。
算法概述
本题要求为用一个类来管理日程安排,每次输入开始时间和结束时间,如果没有时间重叠则可放入类内,如有冲突时间,则返回错误。使用直接遍历(或二分查找优化),或者是 线段树 。
- 时间复杂度为
: 为线段树的最大深度 - 空间复杂度为
JAVA
1 | class MyCalendar { |
总结
线段树是一种静态的结构,从整个数据的可能存在范围向下二分递归,为可能相关的区间提供标记,虽然没有真的构造出一棵树,但是通过序号之间的关系模拟了树的遍历过程以及节点之间的关系,所以在这种数据结构中,遍历(或者操作)的核心单位是 序号 ,只有通过遍历到达了某一序号我们才可以进行操作或者查询,序号即区间。
还是很陌生的,有很多实现细节要注意,需要背记 。
- Title: 我的日程安排表 I
- Author: tobegold574
- Created at : 2025-01-02 12:22:56
- Updated at : 2025-01-02 13:40:03
- Link: https://tobegold574.me/2025/01/02/我的日程安排表-I/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments