记录 1 道算法题
搜索插入位置
要求:提供一个数组和数字,返回数字在数组里的位置,如果没有就输出 push 到数组后的下标。(数组是升序的)
使用二分查找,由于数组是升序的,所以我们可以用中间的数判断,我们要查找的数在左边还是右边,直到找到或者找不到。
function searchInsert(nums, target) {]
// 左右边界
let a = 0
let b = nums.length - 1
// 默认给最后一位,如果查不到就是 push
let res = nums.length
while(a <= b) {
// 取中间值
const mid = (a + b) >> 1
const n = nums[mid]
if (n < target) {
a = mid + 1
} else {
// 右边界向左缩小的时候是我们要记录的结果
res = mid
b = mid - 1
}
}
return res
}