题目描述:
求出数组中单个的数字。
思路:在网上找到了异或运算可解决。
从数A开始与其他某个数B进行异或运算,然后再与数B进行异或运算后,结果为A,只要与数X运算两次,最后的结果都为A。
例如:A*B*C*D*B*C*D=A;因为B*B=0 ,又因为B*C*D*B*C*D=0。
代码:
int singleNumber(vector<int>& nums) {
int result=0;
for(int i=0;i<nums.size();i++)
{
result^=nums[i];
}
return result;
}