nums.length === 1 && nums[0] === 1 如果传入的是[1] 则返回0,
如果传入的是[0],则返回的是1
for循环遍历,找到满足 0~n-1 其中缺少一项的情况,如果相邻两项差值大于1,说明中间有断层,返回中间值即可
排除上面情况,剩下只有,最前面和最后面缺值了,且长度大于1,这里做个简单判断,如果第一项有0说明是最后缺一项,如果第一项没有0,直接返回0即可
var missingNumber = function(nums) {
if(nums.length === 1 && nums[0] === 1){
return 0
}
if(nums.length === 1 && nums[0] === 0){
return 1
}
var len = nums.length
for(var i=0;i<len;i++){
if(nums[i+1] && nums[i+1] - nums[i] > 1){
return nums[i] + 1
}
}
if(nums[0] == 0){
return nums[len-1] + 1
}else{
return 0
}
};