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?
思路:
因为0^A=A,A^A=0,且异或操作是可交换的,所以该题目使用异或操作就可以找到只出现一次数字。
Code:
class Solution {
public:
int singleNumber(vector<int>& nums) {
int result=0;
for(int i=0;i<nums.size();i++) result ^=nums[i];
return result;
}
};