欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

前端企业面试题:企业真实案例——29

程序员文章站 2022-06-04 14:43:46
...
实现一个二分法查找
var searchInsert = function(nums, target) {
    //确定左右边界索引
    let min = 0;
    let max = nums.length-1;
    while(min <= max) {
        let midIndex = (min+max)>>1; //向右移位,等价于除以2取整
        //找到了直接返回
        if( target == nums[midIndex] ) return midIndex; 

        //目标值比中间值大,最左边界从中间右移一位
        if( target > nums[midIndex] ) min = midIndex+1;  

        //如果目标值比中间值小,最右边界从中间左移一位
        else max = midIndex-1;
    }
    return min; //没找到时,则min==max,直接返回即可
};