题目1-LeetCode136
先来看一道LeetCode的相似题目,给定一个数组,数组中只有一个数字出现了一次,其余数字都出现了两次,找出出现一次的数字,返回结果。
提示
算法不能使用额外的空间,且时间复杂度是O(1)。
解法
采用异或运算符,^ 相同位为0,不同位是1.所以两个相同的数字进行异或操作,返回结果是0,因此这道题就很容易得出答案了。
代码
int main()
{
int array[]={10,10,92,92,93};
int res = 0;
for( i=0;i<5;i++){
res ^= array[i];
}
printf("%d\n",res);
return 0;
}