二分法的写法

var nums=[1,2,3,4];var target=3;// 左闭右闭var find=(nums,target)=>{    var l=0;    var r=nums.length-1;    while(l<=r){        var mid=Math.floor((l+r)/2);        if(nums[mid]>target){            r=mid-1;        }        else if(nums[mid]<target){            l=mid+1;        }else{            return nums[mid];        }    }    return -1;}//左闭右开var find2=(nums,target)=>{    var l=0;    var r=nums.length;    while(l<r){        var mid=Math.floor((l+r)/2);        if(nums[mid]>target){            r=mid;        }else if(nums[mid]<target){            l=mid+1;        }else{            return nums[mid];        }    }    return -1;}//左闭右开,递归写法var find3=(nums,t)=>{    var search=(l,r)=>{        if(l>=r) return -1        var mid=Math.floor((l+r)/2)        if(nums[mid]>target){            return search(l,mid)        }else if(nums[mid]<target){            return search(mid+1,r)        }else{            return mid        }    }    return search(0,nums.length)}