【面试题】寻找单身狗

来源:互联网 发布:有声自动阅读软件 编辑:程序博客网 时间:2024/05/18 02:22

题目

给出2 * n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。

答案

这道题直接就可以利用了异或位运算的一个性质,这个性质是数a与自身异或的结果为0。

所以我们的解法是遍历数组中的每一个元素,并将其进行异或。,所以最终的异或结果将仅仅包含只出现一次的那个数,那个数就是我们的答案。