您将获得2 ^ 32-2个唯一数字,范围从1到2 ^ 32-1.将所有数字都放入内存是不可能的(因此排序不是一种选择).系统会要求您找到丢失的号码.解决这个问题的最佳方法是什么?
假设您不能使用大整数并且仅限于32位整数.
ints通过标准传入.
syk*_*ora 32
主要编辑:相信我会让事情变得更加艰难.
我在这里假设的数字是1到2 32 - 1 包.这应该使用1位额外的32位内存位置.
编辑:我以为我可以逃脱魔法.呃,好吧.
对于那些知道汉明码如何工作的人来说,这是一样的想法.
基本上,对于从0到2 n - 1的所有数字,在数字的每个位位置中恰好有2 (n - 1) 1个.因此,xoring所有这些数字实际上应该为0.但是,由于缺少一个数字,该特定列将给出一个,因为在该位位置有一个奇数个.
注意:虽然我个人更喜欢使用**运算符进行求幂,但我已将我的运算符改为^因为这就是OP所使用的.不要混淆^ for xor.
| 归档时间: |
|
| 查看次数: |
4479 次 |
| 最近记录: |