现在有一个整数类型的数组,数组中素只有一个元素只出现一次,其余的元素都出现两次。
注意:
你需要给出一个线性时间复杂度的算法,你能在不使用额外内存空间的情况下解决这个问题么?
异或的性质:
- 交换律:a ^ b ^ c <=> a ^ c ^ b
- 任何数于0异或为任何数 0 ^ n => n
- 相同的数异或为0: n ^ n => 0
该数组一定是奇数个,所有数异或完了都为0 再与独苗数异或就输出它本身
int singleNumber(int* nums, int numsSize){
int result =0;
for(int i=0;i<numsSize;i++)
result^=nums[i];
return result;
}