题意:给出一个数组,有n个数,是0到n的序列,少了其中的某个数,求这个缺少的数。
题解:异或,把数组和1到n异或一遍,异或之和就是答案。因为相当于所有的数字都出现了2次,没出现那个数只出现了一次。
class Solution {
public:
int missingNumber(vector<int>& nums) {
int ans = 0;
int n = nums.size();
for(int i = 1; i <= n; i++)
ans ^= (i ^ nums[i - 1]);
return ans;
}
};