问题描述
我解决了问题的第一部分,但卡在了第二部分。
Init()
设置电梯从0层开始,运行方向向上(该函数只调用一次,方向不能改变)。 O(1)
AddStop(K)
将电梯到达 k 层时应停止的信息保存到 DS 中。 O(log n) 而 n 是电梯的总停靠次数。
NextStop()
将电梯送到下一个停靠位置,如果它在最后一个可用停靠位置,则电梯停留在当前位置。复杂度(1)。
我的解决方案:我使用了 AVL 树,这样每个节点都有一个指向它之后的节点和它之前的节点的指针(根据楼层编号)
当我添加新楼层时,我会相应地更改其 2 个指针,并将指针更改为树中受影响的节点。
第 2 部分:
众所周知,在 i 呼叫 AddStop(K)
后,电梯可以停在的最高楼层是最大 2i。
新的复杂性时间要求:
Init()
- O(1)。 (没变)
AddStop(K)
- O(1)。以 NextStop()
NextStop()
- O(1)。以 AddStop(K)
有人可以帮我解决第 2 部分吗?
更新:
我认为第 1 部分与解决第 2 部分无关,另外我非常相信我们应该在这里使用哈希表。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)