【发布时间】:2017-03-16 09:06:58
【问题描述】:
鉴于 N 64 位无符号整数,我希望将它们有效地存储在数据结构 D 中并能够执行以下查询:
给定一个整数 A,返回 D 中至少有 k 个最高有效位相同的所有整数。
例如,如果有一个包含 3 个 64 位整数的列表:
a. 1010010000000000010000000000000000000000100000000000000000000001
b. 0000000100001000000000010000000000000000000000000000000000000001
c. 1010010100000000000000010000000000000000000000000000000000000001
查询 A 是:
1010010000000000000000010000000000000000000000000000000000000001
我们选择 k = 7
它应该返回一个包含 2 个元素的列表:
a.1010010000000000010000000000000000000000100000000000000000000001
c.1010010100000000000000010000000000000000000000000000000000000001
如果查询 A1 是:
0010010000000000000000010000000000000000000000000000000000000001
和 k = 2
它应该返回一个元素的列表:
b. 0000000100001000000000010000000000000000000000000000000000000001
如果查询 A2 是:
1110010000000000000000010000000000000000000000000000000000000001
和 k = 3
它应该返回一个空列表。
N 大小应为 5000 万个整数。
你能指出最合适的数据结构吗? 如果我可以从数据结构 D 中插入/删除,那就太好了 创建之后。
【问题讨论】:
标签: algorithm data-structures tree hashmap trie