我正在考虑以下数据结构问题:
给定 1
和 n
之间的整数(按排序顺序),每个操作都会查询,然后删除(在一次调用中)第 k 个最小的数字。如何使查询和删除都是常数时间操作?
它类似于数组结构,但需要不断删除。虽然顺序平衡二叉树可以做到这一点,但它的复杂度是 O(lg n) 。
可以利用 range 属性(仅在 1
和 n
之间的数字)来使其工作吗?
最佳答案
LinkedHashSet就是您正在寻找的。如果您想要数组中的索引,请使用此 LinkedHashMap 。但您需要按照从 1
到 n
关于algorithm - 数据结构类似数组但支持删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19688850/