题解:丢失的数字(位运算算法)
目录
- 1.题目
- 2.题解
- 3.位运算异或
- 4.总结
1.题目
题目链接:LINK
2.题解
- 哈希数组查漏
- 高斯求和
- 排序
- 位运算异或
- …
3.位运算异或
class Solution
{
public:
int missingNumber(vector<int>& nums)
{
int ret = 0;
for(auto x : nums) ret ^= x;
for(int i = 0; i <= nums.size(); i++) ret ^= i;
return ret;
}
};
当然也可以这样写:
class Solution {
public:
int missingNumber(vector<int>& nums) {
int ret = 0;
//异或上nuns的各位数字
for(int i = 0; i < nums.size(); i++)
ret^=i,ret^=nums[i];
//注:还有个n没异或
ret^=nums.size();
return ret;
}
};
4.总结
无
EOF