如何解决哈希表的摊销时间
我解决了问题的第一部分,但卡在了第二部分。
我有一部电梯,想支持以下内容:
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 举报,一经查实,本站将立刻删除。