几条规则:

1. while(left <= right)作为循环进入条件,退出则为left > right

循环内不再有return条件

2. nums[mid] == target之后,假如收缩左侧边界,就修改left,右侧则修改right;

以上图为例,如果找到target,可以一直往左边收缩

3. 假如在找到一个值就返回,提前return;

假如找到左侧或者右侧边界,不要在while中提前return,靠while(left <= right)不满足返回即可

labuladong的二分法查找模板的更多相关文章

  1. 使用二分法查找mobile文件中区号归属地

    #!/usr/bin/env python #coding:utf-8 ''' Created on 2015年12月8日 @author: DL @Description: 使用二分法查找mobil ...

  2. js冒泡排序与二分法查找

    冒泡排序 var attr=[1,5,7,6,3,9,2,8,4]; var zj=0; //控制比较轮数 for(var i=0;i<attr.length-1;i++) { //控制每轮的比 ...

  3. Java基础(50):二分法查找的非递归实现和递归实现(完整代码可运行,参考VisualGO理解更佳)

    一.概念 二分查找算法也称折半查找,是一种在有序数组中查找某一特定元素的搜索算法. 二.算法思想 搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束:如果某一特定元素大于或者 ...

  4. C语言的算法--------二分法查找

    int find(int n,int a[],int l){int low=0;int high=l-1;int middle=0;while(low<high){middle=(low+hig ...

  5. JavaScript用二分法查找数据等

    //二分法查数据 var arr=[41,43,45,53,44,95,23]; var b=44; var min=0; var max=arr.length; for(var i=1;i<a ...

  6. Python二分法查找及变种分析

    基于Python3 普通二分法查找目标值的index 二分法查找的思路很简单,先确定好列表nums的一头start一尾end,中间值middle根据头尾数值之和用地板除法除以2,即(start + e ...

  7. C#实现二分法查找算法

    /// <summary> /// 二分法查找 /// </summary> /// <param name="arr"></param& ...

  8. python3 二分法查找

    '''二分法查找有序列表掐头去尾取中间查找列表中xx在不在列表中,在,则返回索引值'''# lst = [1, 4, 6, 8, 9, 21, 23, 26, 35, 48, 49, 54, 67, ...

  9. day17递归函数(二分法查找)

    递归函数: 如果函数包含了对其自身的调用,该函数就是递归的: example 1:二分法查找的实现: def find_recursion(l,aim,start=0,end=None): #end不 ...

  10. C# -- 二分法查找

    二分法查找:适用于已经排序好的数组 1.二分法查找(入门案例) static void Main(string[] args) { , , , , , , , , , , , , , , , , , ...

随机推荐

  1. Chapter 1 内容梳理

    目录 程序的编译与执行 编译环境 程序的编译 程序的执行 标准输入与标准输出 例程导入 标准输入与输出对象 输入与输出符号详解 函数角度理解[用函数的副作用] 运算符角度理解 定位符号(scope o ...

  2. docker login 私有仓库时报错

    连接私有harbor报错如下: docker login 192.168.1.88 -uadmin -pHarbor12345 WARNING! Using --password via the CL ...

  3. Redis学习笔记整理

    一.Redis概述 1.redis简介 Redis(REmote DIctionary Server 远程字典服务器)是一款开源的,用ANSI C编写.支持网络.基于内存.亦可持久化的日志型.Key- ...

  4. vue-elementui中el-table跨页选择和v-if导致列错乱/选择框无法显示

    在vue-elementui中使用el-table,当type="selection"的时候,分页数据进行不同页跳转选择 需要这种功能的时候我们需要在el-table的标签上为每个 ...

  5. Converter Tutorial

    Setting up a simple example This is the most basic converter... let's start with a simple Person: pa ...

  6. vue在组件中实现双向绑定

    父组件中的一个变量和子组件的input框实现双向绑定,就要用到下面的方法: 父组件: <script> import CustomInput from './CustomInput.vue ...

  7. ClickHouse之基础使用

    [安装] [YUM] 1.添加官方存储库 sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://packag ...

  8. Mybatis【3】-- Mybatis使用工具类读取配置文件以及从属性读取DB信息

    代码直接放在Github仓库[https://github.com/Damaer/Mybatis-Learning ],可直接运行,就不占篇幅了. 1.使用工具类获取sqlSession实例对象 在上 ...

  9. Windows 触控笔

    平板以及二合一平板均是触控屏,Laptop现在也有很多屏幕带触控 触控屏,都会配置触控笔配件,目前市场上一般是电容屏+电容笔的技术方案. 触控笔分为主动笔和被动笔,主动笔占绝大部分.主动笔是通过内部电 ...

  10. manim边做边学--图形的创建与销毁

    上一篇介绍了文字相关的创建和销毁动画,本篇介绍几个用于几何图形的创建和销毁动画效果类. Create:用于在场景中生成一个完整的Mobject(可渲染对象) Uncreate:是Create的逆操作, ...