algorithm - 数据结构类似数组但支持删除

标签 algorithm data-structures

我正在考虑以下数据结构问题:

给定 1n 之间的整数(按排序顺序),每个操作都会查询,然后删除(在一次调用中)第 k 个最小的数字。如何使查询和删除都是常数时间操作?

它类似于数组结构,但需要不断删除。虽然顺序平衡二叉树可以做到这一点,但它的复杂度是 O(lg n) 。

可以利用 range 属性(仅在 1n 之间的数字)来使其工作吗?

最佳答案

LinkedHashSet就是您正在寻找的。如果您想要数组中的索引,请使用此 LinkedHashMap 。但您需要按照从 1n

的顺序插入它们

关于algorithm - 数据结构类似数组但支持删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19688850/

相关文章:

c++ - 如何在 map 中使用 tolower 和 lambda 函数? C++

javascript - 管理代码中大量硬编码数据的最佳方法?

java - POP方法链表

c++ - 关于使用哪种数据结构来快速搜索 C++ 的建议

java - KdTree 最近邻搜索算法无法正常工作

c++ - 找到两个 vector 之间的交点

algorithm - 使用 STL 运行长度使用 std::adjacent_find 对字符串进行编码

python - 获取 O(1) 中总和最小的数的因子

java - 使用java构建字典

algorithm - 范围内整数的乘法