哈希表的摊销时间

问题描述

解决了问题的第一部分,但卡在了第二部分。

我有一部电梯,想支持以下内容

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 (将#修改为@)