只出现一次的数字

Posted Alice_yufeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了只出现一次的数字相关的知识,希望对你有一定的参考价值。

位运算解决

这题说的是只有一个数出现了一次,其他数字都出现了2次,让我们求这个只出现一次的数字。这题使用位运算是最容易解决的,关于位运算有下面几个规律

1^1=0;

1^0=1;

0^1=1;

0^0=0;

也就说0和1异或的时候相同的异或结果为0,不同的异或结果为1,根据上面的规律我们得到

a^a=0;自己和自己异或等于0

a^0=a;任何数字和0异或还等于他自己

abc=acb;异或运算具有交换律

有了这3个规律,这题就很容易解了,我们只需要把所有的数字都异或一遍,最终的结果就是我们要求的那个数字。

class Solution 
  public int singleNumber(int nums[]) 
    int result = 0;
    for (int i = 0; i < nums.length; i++)
        result ^= nums[i];
    return result;
  

以上是关于只出现一次的数字的主要内容,如果未能解决你的问题,请参考以下文章

数组中只出现一次的数字(数组中唯一只出现一次的数字)

只出现一次的数字

数组中只出现一次的数字

只出现一次的数字

只出现一次的数字

LeetCode只出现一次的数字i/ii/iii