题解:丢失的数字(位运算算法)
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