列表的属性:
的大小必须为N,其中N是整数的数量
没有空单元
数字可能不是完全相继的(即{-23,-15,-3,1,2,6,7,8,15,100})
插入/查找需要处于不变的时间。
我的第一直觉是使用哈希表,但这会创建未使用的单元格,其中跳过数字。
是否有任何方法可以构建这样的列表,以便在该列表中存在一个数字时以恒定时间检查?
答案 0 :(得分:1)
根据我的评论,您可以使用Set
,根据具体用例,如果需要,您可以查看Java HashSet或LinkedHashSet等内容。保持根据doc应该是恒定时间的顺序:
与HashSet类似,它为基本提供了恒定时间性能 操作(添加,包含和删除),假设哈希函数 在桶中适当地分散元素。
如果您正在寻找其他平台上的解决方案,可能有相同的实现,或者您可以检查Java的源代码并自行实现。