首先是我自己乱写的,弱智写法:排序然后不断+1找到没有的那个
/**
* @param {number[]} nums
* @return {number}
*/
var missingNumber = function(nums) {
if(nums.length == 1 && nums[0] == 0) return 1
if(nums.length == 1) return 0
nums.sort(function(a,b) { return a-b})
if (nums[0] != 0) return 0
for( let i =0; i < nums.length ; i++) {
if(nums.includes(nums[i]+1) === false) {
console.log(nums[i]+1)
return nums[i]+1
}
}
};

第二种方法是我看了解析知道的,可以把0…数组长度+1求和减去原本数组的和,就是缺的这个数字了,效率快很多
/**
* @param {number[]} nums
* @return {number}
*/
var missingNumber = function(nums) {
let sum = 0
for(let i = 0; i <nums.length; i++) {
sum += nums[i]
}
return nums.length * (nums.length+1)/2 -sum
};

第三种办法是个骚操作了,异或运算,我也没整明白
/**
* @param {number[]} nums
* @return {number}
*/
var missingNumber = function(nums) {
let res = nums.length
for(let i = 0; i <nums.length; ++i) {
res ^= nums[i]
res ^= i
}
return res
};
