当前位置: 首页 > news >正文

力扣初级算法(二分查找)

力扣初级算法(二分法):

  • 每日一算法:二分法查找

学习内容:

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
在这里插入图片描述

2.二分查找流程:

left=0,right=nums.length,取mid为中间值

  • 如果nums[mid]==target,返回mid值,循环终止
  • 如果nums[mid]>target,就说明从mid到right之间的值都是“无用的”需要挪动right,而我们能知道的接近的一个无用的值是mid,因此right必须比mid还要小才行,也即是right=mid-1;
    同理,left=mid+1;
  • 一直循环,除非找到mid值或者发现target根本不在目标中,也就是已经完全循环了一遍(left>right),这时候的left的值就是最接近target但又大于target的值(可以拿0来举例自己画一遍过程),因此return left

3.二分查找实现:


class Solution {public int searchInsert(int[] nums, int target) {//二分法//左边下标int left = 0;//右边下标int right = nums.length -1;while(left <= right){int mid = left + (right - left)/2;//相等,直接取出if(nums[mid] == target){return mid;}else if(nums[mid]<target){ //中间值小于所给的值,从中间值加一开始往右找left = mid + 1;}else if(nums[mid] > target){/中间值大于所给的值,从中间值减一开始往左找right = mid -1;}}return left;}
}

学习时间:

2023/08/03

http://www.lryc.cn/news/115314.html

相关文章:

  • 探索未来:直播实时美颜SDK在增强现实(AR)直播中的前景
  • SQL 单行子查询 、多行子查询、单行函数、聚合函数 IN 、ANY 、SOME 、ALL
  • 【第一阶段】kotlin的range表达式
  • 网络防御(5)
  • gradle 命令行单元测试执行问题
  • 剑指Offer12.矩阵中的路径 C++
  • 金鸣识别将无表格线的图片转为excel的几个常用方案
  • 刚刚更新win11,记事本消失怎么处理?你需要注意些什么?
  • 【QT】 QTabWidgetQTabBar控件样式设计(QSS)
  • 【个人记录】CentOS7 编译安装最新版本Git
  • 【Linux】计算机网络的背景和协议分层
  • 代理模式:静态代理+JDK/CGLIB 动态代理
  • gps虚拟定位 AnyGo for Mac 中文
  • LLM reasoners 入门实验 24点游戏
  • 【LeetCode 算法】Maximum Absolute Sum of Any Subarray 任意子数组和的绝对值的最大值-前缀和
  • 怎么建立大型语言模型
  • docker简介和安装
  • 记录问题: servlet获取项目包绝对路径
  • C语言文件操作基本方法
  • SQL 相关子查询 和 不相关子查询、Exists 、Not Exists、 多表连接(包含自连接)
  • 项目规范 编写规范(范例)
  • MongoDB数据库操作及操作命令
  • Linux命令(62)之tee
  • 搭建Repo服务器
  • 安卓:MMKV——键值存储库
  • 使用Python将图像转换为PDF:一次性解决您的批量转换需求
  • Vue——webpack
  • springboot房地产管理java购房租房二手房j客户sp源代码mysql
  • Gartner 发布影响数据科学和机器学习未来方向重要趋势
  • 72. 编辑距离