代码实现:
class Solution {
public:
int singleNumber(vector<int>& nums) {
int result=0;
for(int num:nums)
{
result^=num;
}
return result;
}
};
结果:
思路:这里让0和数组元素不断异或,因为0与一个数异或的结果是它本身,而一个数与自己异或就是为0。
因为题目提到除去出现一次的元素外,每个元素都出现两次。并且异或运算是可交换的和结合的,因此不管元素的顺序如何,异或的结果是一样的。两两元素会异或成0。只留下唯一出现的元素。