问题描述
关于这个问题:
给定一个由 2^n −10n ≤ A[i] ≤ 2^n 范围内的 n 个整数组成的未排序数组 A。 建议一种数据结构,允许在 O(1) 步中回答范围 a 到 b(注意a、b不一定是整数)。数据结构的构建应该 最多花费 O(n) 步。
谁能解释一下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 的条目。
用几句话描述数据结构。
基于二叉搜索树的结构将适用于每个没有链接到子节点和子节点的额外可变跟踪范围的结构。
找到范围节点 O(n) 的时间。 查找范围内节点数的时间是 O(1),因为我们将在构建/创建树时进行计算。