题目描述
给定一个含有n个元素的数组,数组中所有的元素在 0-n 之间,但是有一个数是缺失的,要求找到这个缺失的数。
解题思路
可采用位异或的思路,将数组中所有的元素取位异或,然后与所有的下标取位异或,最后再位异或n即可得最终的结果。
AC代码
class Solution {
public:
int missingNumber(vector<int>& nums) {
int res = 0;
int n = nums.size();
for (int i = 0; i < n; ++i)
res = res ^ nums[i] ^ i;
res = res ^ n;
return res;
}
};