力扣leetcode136. 只出现一次的数字C++
136. 只出现一次的数字
对于这道题目我们可以考虑使用位运算的思想来进行求解
知识点回顾
异或运算
a^a = 0;
a^a ^b = b;
a^ b^ c = a^c ^ b;
我们可以看到两个相同的数 异或的结果为0
因此这道题目只需要将庶族内的所有元素逐一异或,就可以得到结果
代码如下
class Solution {
public:
int singleNumber(vector<int>& nums) {
int ans = 0;
for(int i = 0; i < nums.size(); i++)
{
ans ^= nums[i];
}
return ans;
}
};
进阶题目链接
数组中数字出现的次数
数组中数字出现的次数 II