二分法查找某个数

力扣–二分法

​ 今天也是刷算法的一天,作为小白刚刚入门Java,跟着力扣上的刷题计划进行刷题,今天刷的是一道更为简单的二分法,那么话不多说,直接开始总结。


1.题目要求

题目要求


2.算法思路

​ 所谓二分法,和我们经常玩的猜数字游戏一样,比如1-100的有序数组中,我们要猜的数为20,那么首先我们猜一个50,很明显比20大,那就在1-49之间猜,我们猜25,比20大,那么我们要在1-24之间寻找,我们猜13,很明显比20小,从14-24之间猜,猜20,中了。

那么我们根据这个思路去编写代码:


  • 先定义区间的头和尾部的标号-在这里插入图片描述
  • 然后就开始写判断语句
    在这里插入图片描述
    ​ 在while()判断中,如果我们的区间 nums 最前面的数的序号比最后面的序号小(注意这个题的前提是有序数组),那么这个循环一直运行,运行的内容就是去猜数字 target 了,如果第一次就遇到数组中间的值等于我们的目标值,那么直接返回该值的序号,也就是下标。如果目标值比中间的数大,那么该区间就更新一次,更新内容为使一开始的序号为该数组中间的序号再加一,如果目标值比中间值小,那么最后面的数的序号更新为中间的序号减一。当整个数组都判断完后,还是没有找到我们的目标值,则返回一个 -1 即可,或者也可以去抛一个异常&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值