Given an array of integers, every element appears twice except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
Subscribe to see which companies asked this question
class Solution {
public:
int singleNumber(vector<int>& nums) {
int length = nums.size();
int x = 0;
for(int i = 0; i < length; ++i)
{
x ^= nums[i];
}
return x;
}
};
异或运算,0根任何数异或都是任何数本身,异或符合交换律 a ^ b = b ^ a 。