int singleNumber(int* nums, int numsSize) {
int p=nums[0];
for(int i=1;i<numsSize;i++)
{
p^=nums[i];
}
return p;
}
这是根据论坛上的XOR(异或)方式写的答案。
^是C语言的位运算符,按位异或的意思. a^b就是拿a和b的二进制形式,按位,相同得0,不同得1. 如:2^3==(10)^(11)==(01)==1
我本想用额外数组做hashset求解,答案繁琐且超时,百思不得其解看了答案,茅塞顿开。
2016/1/29