- 两个相同的数异或结果为 0,任何数与 0 异或都是本身
x ^ x = 0
0 ^ x = x
- 对数组中所有数异或,出现两次的数异或结果为 0,最终结果即为只出现一次的数
class Solution {
public:
int singleNumber(vector<int>& nums) {
int res = 0;
for (auto& x : nums) {
res ^= x;
}
return res;
}
};
x ^ x = 0
0 ^ x = x
class Solution {
public:
int singleNumber(vector<int>& nums) {
int res = 0;
for (auto& x : nums) {
res ^= x;
}
return res;
}
};