Given an array `nums`

containing `n`

distinct numbers in the range `[0, n]`

, return *the only number in the range that is missing from the array.*

**Follow up:** Could you implement a solution using only `O(1)`

extra space complexity and `O(n)`

runtime complexity?

**Example 1:**

Input:nums = [3,0,1]Output:2Explanation:n = 3 since there are 3 numbers, so all numbers are in the range [0,3]. 2 is the missing number in the range since it does not appear in nums.

**Example 2:**

Input:nums = [0,1]Output:2Explanation:n = 2 since there are 2 numbers, so all numbers are in the range [0,2]. 2 is the missing number in the range since it does not appear in nums.

**Example 3:**

Input:nums = [9,6,4,2,3,5,7,0,1]Output:8Explanation:n = 9 since there are 9 numbers, so all numbers are in the range [0,9]. 8 is the missing number in the range since it does not appear in nums.

**Example 4:**

Input:nums = [0]Output:1Explanation:n = 1 since there is 1 number, so all numbers are in the range [0,1]. 1 is the missing number in the range since it does not appear in nums.

**Constraints:**

`n == nums.length`

`1 <= n <= 10`

^{4}`0 <= nums[i] <= n`

- All the numbers of
`nums`

are**unique**.

解答:

```
j = j ^ i ^ nums[i] j ^ i
0: 2 = 0 ^ 0 ^ 3 2 ^ 0 = 2
1: 3 = 2 ^ 1 ^ 0 3 ^ 1 = 2
= 3 ^ 0
2: 0 = 3 ^ 2 ^ 1 0 ^ 2 = 2
= 1 ^ 1
```

3 ^ 1 = 2

11

01

___________

10

3 ^ 2 = 1

11

10

___________

01

**解釋: **

a^b^b =a，兩個相同的數字

a^b^b =a, which means two xor operations with the same number will eliminate the number and reveal the original number.

In this solution, I apply XOR operation to both the index and value of the array. In a complete array with no missing numbers, the index and value should be perfectly corresponding( nums[index] = index), so in a missing array, what left finally is the missing number.