题目链接:136. 只出现一次的数字 - 力扣(LeetCode)
first 要了解异或“ ^ ” 相同为0,相异为1 :
想想1^0是不是还是1,因为32个0和00000000 00000000 00000000 00000001前面都相同所以都是0只有后面的为1,1和0不相同所以为1,由此可以得出任何数异或0都等于本身
这是一个数组是不是把它们所有的数^异或起来就可以得到只有出现一次的数字的呢?
因为1和1异或因为都相同所以32位都为0
相同的数异或等于0
class Solution {
public:
int singleNumber(vector<int>& nums)
{
int mun = 0 ;
for(auto e:nums)
{
mun ^=e;
}
return mun;
}
};