在一组100万个数字中找到一个唯一数字的有效算法是什么?

use*_*838 20 algorithm data-structures

我在接受采访时被问到这个问题.在100万个数字中,除一个数字外,所有数字都有重复数字.如何找到那个号码?我应该使用哪种算法来获得良好的时间和空间复杂度?我有一个想法使用EXOR门,但我仍然在部署它.

use*_*559 29

使用xor依次所有数字.

对于以下数字列表:

1, 2, 3, 4, 3, 2, 1

让^代表独家分离(或xor)

然后,
1 ^ 2 ^ 3 ^ 4 ^ 3 ^ 2 ^ 1 = 4

  • 这只有在每个值出现偶数时才起作用,但我认为在这种情况下重复意味着'两个' (9认同)
  • 你应该添加一些解释,你的解决方案是正确的:) (6认同)