微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以使用 O(1) 插入、删除和 O(1) 访问到最小值来创建 LinkedList 实现?

如何解决是否可以使用 O(1) 插入、删除和 O(1) 访问到最小值来创建 LinkedList 实现?

假设您对这个问题有无限的空间复杂度。我相信我看到了解决方案,但我已经完全忘记了。如果我没记错的话,一个解决方案涉及一个堆栈来跟踪最小值,另一个涉及将数据值添加到 LinkedList 节点。

最小堆实现会导致 Log(n) 插入和删除,但有没有办法让它变成 O(1)?

如果可能的话,可以实现这一点的数据结构的实现是什么。

解决方法

如果您有这样的数据结构,您可以使用 O(n) 比较对 n 个项目进行排序:将它们添加到列表中,然后重复查找最小值并将其删除。

因此,这种数据结构一般不可能存在这些性能界限。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。