只出现一次的数

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

分析:想了很久也没想到,最后百度是通过亦或的方法,原理因为只有一个元素出现一次,其他元素出现了两个,元素与元素本身亦或为零,与零亦或为它本身。

//找出数组中只存在一次的数
     public static int SingleNumber(int[] nums){
         int num = 0;
         for(int i=0;i<nums.length;i++){
             num ^=nums[i];
         }
         return num;
     }

扩展亦或知识点
a^a=0; 与它本身亦或为零;
a^0=a; 与零亦或为它本身;

关于a,b交换变量
a=a^b;
b=a^b;
a=a^b;

猜你喜欢

转载自blog.csdn.net/weixin_40787587/article/details/81558810