Given an array of integers, every element appears twice except for one. Find that single one.
求数组中唯一一个没有重复出现两次的数
自己想了一会儿,没有好的想法,上网搜了下,只找到了找出没有重复出现的方法,一个很巧妙的方法是,利用异或算法:
http://blog.csdn.net/wanwenweifly4/article/details/6742431
于是此题就很好解决,因为X^X = 0 0^X = X;
所以将所有的数都进行异或,最后剩下来的就是没有重复出现的数字了!
Code如下:
class Solution {
public:
int singleNumber(int A[], int n) {
// IMPORTANT: Please reset any member data you declared, as
// the same Solution instance will be reused for each test case.
int i;
int result = 0;
for(i = 0 ; i < n ; i++)
{
result ^= A[i];
}
return result;
}
};