我遇到了这些面试问题,我试图了解如何解决这个问题。我在SO上阅读了this个问题。我理解帖子的作者的方法,但是我不理解接受的答案中建议的方法。所以我转到了blog。根据这个博客,我们可以计算每个位位置的零和1的数量,从中我们可以找出丢失的数字。但那时文件应该有2 ^ 32-1个数字,大于40亿。那个方法应该不对吗?我确信我的理解有问题,但我无法弄清楚缺失的环节。
答案 0 :(得分:1)
如果你有一个完整的"数字序列从0到2 ^ N-1然后在每个比特位置设置的比特数将相等(并且等于(2 ^ N)/ 2)。
如果只丢失一个数字,那么它的1位对应于一位数短的位位置。
请注意,这仅适用于2的幂,但可能有一个可以为" odd"计数。
答案 1 :(得分:0)
示例: