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

数据结构建议

如何解决数据结构建议

关于这个问题:

给定一个由 2^n −10n ≤ A[i] ≤ 2^n 范围内的 n 个整数组成的未排序数组 A。 建议一种数据结构,允许在 O(1) 步中回答范围 a 到 b(注意a、b不一定是整数)。数据结构的构建应该 最多花费 O(n) 步。

  1. 用几句话描述数据结构。
  2. 编写用于构建数据结构的伪代码
  3. 为 numberKeys(NewDataStructure,a,b) 编写伪代码
  4. 简要说明 (2) 和 (3) 的时间和空间复杂度。

谁能解释一下the number of keys in the range a to b是什么意思?

感谢您的帮助!

谢谢!

解决方法

假设n=1000

然后你有一个 1000 条目数组(=键,整数值,数字,...) [2^1000-10000;2^1000]

一个问题可能是:
间隔 [2^1000-9321.7;2^1000-123.2] 中有多少个数组条目?

,

“a 到 b 范围内的键数”意味着 DS 必须能够在任何时间点为任何范围回答基于范围的查询。例如,如果有 10 个条目,则查找值大于 5 但小于 7 的条目。

用几句话描述数据结构。

基于二叉搜索树的结构将适用于每个没有链接到子节点和子节点的额外可变跟踪范围的结构。

参考Binary search tree

找到范围节点 O(n) 的时间。 查找范围内节点数的时间是 O(1),因为我们将在构建/创建树时进行计算。

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