【发布时间】:2014-05-07 02:30:38
【问题描述】:
给定一个包含 40 亿个整数的列表,找到一个不在列表中的整数 使用 4MB 内存。 (采访使用 Java)
我的解决方案是使用 BitSet。
但是根据我的计算,4 MB 内存中的位数不足! = c
4 MB = 4096 KB # 乘以 8
4096 KB =~ 4,096,000 字节 # 乘以 1000
4,096,000 字节 =~ 33,500,000 位 # 乘以 8
所以 33,500,000 位比十亿少两个数量级。别管这 40 亿人。
或者使用此限制是否是问题的一部分?
【问题讨论】:
-
很可能这是问题挑战的一部分,否则我怀疑问题中甚至会提到内存限制。
-
“给定 40 亿个整数的列表”是什么意思?它是如何给你的?在一个文件中?在数据库中?刻在石碑上?
-
+1 表示我从未见过的表情符号:
= c。
标签: java bit-manipulation bit