首页 > 其他分享 >二分法的写法

二分法的写法

时间:2022-12-22 23:56:10浏览次数:38  
标签:target nums mid else 二分法 var 写法

二分法的写法

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)
}


标签:target,nums,mid,else,二分法,var,写法
From: https://www.cnblogs.com/codingggo/p/16999834.html

相关文章

  • 中间件写法2
    """中间件的作用:每次请求和相应的时候都会调用中间件的定义中间件的使用:我们可以判断每次请求中是否携带了cookie中某些信息"""fromdjango.httpimportHttpResponsede......
  • Dijkstra算法表格形式写法
    参考https://www.bilibili.com/video/BV1kM4y1F7Qj/?spm_id_from=333.788.recommend_more_video.0&vd_source=ad3a9ab185a417fd3a4d417051c32c65......
  • 几种渐变CSS写法:线性渐变(Linear Gradients)- 向下/向上/向左/向右/对角方向径向渐变(Rad
    CSS3渐变(gradients)可以让你在多个指定的颜色之间显示两个过渡。以前,你使用图像的效果减少了这些。但是,通过CSS3实现(实现渐变,实现下载)的效果。必须使用的效果,你可以在使用......
  • KingbaseES 实现 MYSQL 的 delete limit 写法
    使用MySQL的用户可能会比较熟悉这样的用法,更新或删除时可以指定限制更新或删除多少条记录。updatetlsetxxx=xxxwherexxxlimit10;deletefromtlwherexxxlimit......
  • if-else 的优美写法
    前言......
  • 二分法搜索算法
    今天看书时,书上提到二分法虽然道理简单,大家一听就明白但是真正能一次性写出别出错的实现还是比较难的,即使给了你充足的时间,比如1小时。如果你不是特别认真的话,可能还是会出......
  • 二分法
    二分法二分法多用于有序数组,经典的案例是查找一个一个有序数组中是否存在某个数题目1:找出一个有序数组中是否存在某个数?publicstaticbooleanexist(int[]sortedAr......
  • Oracle存储函数写法及调用
    1.右键导航创建函数界面  2.返回值FunctionResult可自定义,当函数有输出函数时可不传数据,但需要设置返回(当提示未限定返回长度时,如代码示例设置255长度皆可);-------......
  • 登录请求次数限制,请求限流方案,通用写法
    2022年10月28日14:42:41目前这个版本是通用写法,也可以针对某个url,可以灵活修改,必须是post请求,代码是在laravel实现的publicstaticfunctionlogin(string$login_n......
  • .net 类似python写法例子
    1//[3]*102Enumerable.Range(0,10).ToArray();34//[X*2forxinrange(5)ifx%3==0]5Enumerable.Range(0,5).Select(x=>x*2).ToArray();67//m......