二分查找GO语言实现

力扣链接:. - 力扣(LeetCode)

视频讲解:手把手带你撕出正确的二分法 | 二分查找法 | 二分搜索法 | LeetCode:704. 二分查找_哔哩哔哩_bilibili

文字讲解:代码随想录

自己觉得比较难的点:right left 与mid 加减的关系 这里其实可以画图解决

左闭右闭

func search(nums []int, target int) int {
    //定义左右
    left := 0
    right := len(nums)-1
    //开始循环
    for left <= right {
          //找到数组中间下标
          mid := (left + right) / 2
          //这里可以看图来想一下为什么这样写
        if target < nums[mid] {
            right = mid -1 
        }else if target > nums[mid] {
            left = mid + 1
        }else{
            return mid
        }
    }
    return -1
}

左开右开

func search(nums []int, target int) int {
    left := 0
    right := len(nums)
    for left < right {
          mid := (left + right) / 2
        if target < nums[mid] {
            right = mid
        }else if target > nums[mid] {
            left = mid + 1
        }else{
            return mid
        }
    }
    return -1
}

相关推荐

  1. 二分查找GO语言实现

    2024-05-13 20:32:03       32 阅读
  2. 搜索区间—-二分查找,力扣-go实现

    2024-05-13 20:32:03       52 阅读
  3. C语言-二分查找

    2024-05-13 20:32:03       41 阅读
  4. [C语言]二分查找

    2024-05-13 20:32:03       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-13 20:32:03       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-13 20:32:03       54 阅读
  3. 在Django里面运行非项目文件

    2024-05-13 20:32:03       45 阅读
  4. Python语言-面向对象

    2024-05-13 20:32:03       55 阅读

热门阅读

  1. MYSQL DBA运维实战

    2024-05-13 20:32:03       24 阅读
  2. js设计模式--发布订阅者模式

    2024-05-13 20:32:03       33 阅读
  3. Goframe学习笔记(六)上下文共享变量

    2024-05-13 20:32:03       41 阅读
  4. 1900年-2100年公历转农历数据

    2024-05-13 20:32:03       27 阅读
  5. KUKA机器人专业名词解释

    2024-05-13 20:32:03       31 阅读
  6. 大型ERP设计-业务与功能指引:供应商寄售业务

    2024-05-13 20:32:03       34 阅读