Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missing from the array.

For example,
Given nums = [0, 1, 3] return 2.

可以使用先求和再减去现有的数字的方法;

也可以使用位操作的异或方法,因为数值范围是固定的,所以对1->n的数字都和现有的数字异或,最后剩下的答案就是缺少的那个数字,代码如下:

1
2
3
4
5
6
7
8
9
10
class Solution {
public:
int missingNumber(vector<int>& nums) {
int result = 0;
for (int i = 0; i < nums.size(); i++) {
result ^= nums[i] ^ (i + 1);
}
return result;
}
};