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:** 2
**Explanation****:** 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:** 2
**Explanation****:** 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:** 8
**Explanation****:** 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:** 1
**Explanation****:** 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.
classSolution {publicintmissingNumber(int[] nums) {// edge casesif (nums ==null||nums.length==0) thrownewIllegalArgumentException("invalid input");// mathint n =nums.length;int sumExpected = n * (n +1) /2;int sum =0;for (int i : nums) { sum += i; }return sumExpected - sum; }}
ac3: XOR
classSolution {publicintmissingNumber(int[] nums) {// edge casesif (nums ==null||nums.length==0) thrownewIllegalArgumentException("invalid input");int res =0^ nums[0];for (int i =1; i <nums.length; i++) { res = res ^ i ^ nums[i]; }return res ^nums.length; }}