leetcode(数组) — JavaScript — 0~n-1中缺失的数字
// Math.floor(x):对一个数向下取整
// 二分查找法
var findmissingNumber = function (nums){
let len = nums.length;
// 判断是否是第一个或最后一个缺失
if (nums[0] != 0){
return 0
}
if (nums[len-1] != len){
return len
}
// 二分查找
let i=0, j=len-1,mid;
while(i<j) { //循环别忘记
mid = Math.floor((i + j) / 2);
if (nums[mid] == mid) { //中间值一样说明前面的值没有出问题
if (nums[mid + 1] != mid + 1) return mid + 1;
i = mid + 1;
} else {
if (nums[mid - 1] == mid - 1) return mid;
j = mid - 1;
}
}
}
console.log(findmissingNumber([0,1,2,3,4,6]))