【发布时间】:2015-02-22 18:56:52
【问题描述】:
我有 N 唯一元素,从 0 开始索引,以及使用这些元素创建的数组数据库。数据库是不变的,不会改变。给出了一个查询数组,每次调用都不同。
我必须选择与查询数组至少有K 元素(例如一半)的数据库数组。
我想到的一个解决方案:有一个长度为N的位数组,设置与查询堆栈元素相对应的位,然后遍历整个数据库一次,过滤出具有K的数组。这是相当可扩展的,但有点慢,而且似乎可以使用更快的方法......
注意:
- 查询数组可以包含不存在于任何数据库数组中的元素。
- 没有数组(数据库或查询)有重复的元素。
- 可以在 db 数组上进行预处理,以使某些操作更快,如果需要,可以用内存换取速度。
【问题讨论】:
-
数据库数组中的值是否有范围?
-
@thepace 不,元素不一定是数字。
标签: arrays performance algorithm data-structures