用异或提取出数组中的单独数

原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/12149197.html

如果一个数组中存在若干对相同的数,和一个单独的数,例:

[1, 2, 3, 2, 3, 4, 5, 5, 4]

如果要快速找出其中那个单独数,可以用异或(^)来解决。

因为异或的原理是把数转换成二进制后,对二进制位进行对比, 相同则得0,不同则得1。

public int singleNumber(int[] nums) {
    int single = 0;
    for (int i = 0; i < nums.length; i++) {
        single ^= nums[i];
    }
    return single;
}

如上即可。

posted @ 2020-01-04 15:28  前往幸福的路上  阅读(344)  评论(0编辑  收藏  举报