题解 | #二分查找-I#

二分查找-I

https://www.nowcoder.com/practice/d3df40bd23594118b57554129cadf47b

class Solution:
    def search(self,nums,target):
        left=0 #左指针初始索引为0
        right=len(nums)-1 #右指针初始索引为数组长度减一
        while left<=right:
            mid=(left+right)//2
            if target>nums[mid]:
                left=mid+1
            elif target<nums[mid]:
                right=mid-1
            else:
                return mid
        return -1
 注意点:
1.终止条件判断
1)查找成功(能找到目标值):在while循环体里面正常结束。
(1)注意while循环条件(不能少=,否则要另外单独考虑数组长度为1的情况):当数组长度为1时,left==right=0,此时return mid=0
2)查找失败(返回-1的情况):即当while循环条件为假时
(1)数组为空;right=len(nums)-1=-1<left=0,不进入循环,返回-1。
(2)目标值不存在;在left<=right的条件下找不到目标值,直到left>right时,终止循环,返回-1。
2.指针移动
当target>nums[mid],说明nums[mid]肯定不是目标值,此时应让mid+1赋值给left,而不是mid。同理right。
全部评论

相关推荐

3 1 评论
分享
正在热议
# 牛客帮帮团来啦!有问必答 #
1151163次浏览 17148人参与
# 通信和硬件还有转码的必要吗 #
11193次浏览 101人参与
# OPPO开奖 #
19192次浏览 267人参与
# 和牛牛一起刷题打卡 #
18888次浏览 1635人参与
# 实习与准备秋招该如何平衡 #
203344次浏览 3625人参与
# 大厂无回复,继续等待还是奔赴小厂 #
4969次浏览 30人参与
# 不去互联网可以去金融科技 #
20330次浏览 255人参与
# 通信硬件薪资爆料 #
265877次浏览 2484人参与
# 国企是理工四大天坑的最好选择吗 #
2213次浏览 34人参与
# 互联网公司评价 #
97668次浏览 1280人参与
# 简历无回复,你会继续海投还是优化再投? #
25034次浏览 354人参与
# 0offer是寒冬太冷还是我太菜 #
454815次浏览 5124人参与
# 国企和大厂硬件兄弟怎么选? #
53895次浏览 1012人参与
# 参加过提前批的机械人,你们还参加秋招么 #
14635次浏览 349人参与
# 硬件人的简历怎么写 #
82284次浏览 852人参与
# 面试被问第一学历差时该怎么回答 #
19393次浏览 213人参与
# 你见过最离谱的招聘要求是什么? #
28048次浏览 248人参与
# 学历对求职的影响 #
161224次浏览 1804人参与
# 你收到了团子的OC了吗 #
538669次浏览 6386人参与
# 你已经投递多少份简历了 #
344166次浏览 4963人参与
# 实习生应该准时下班吗 #
96965次浏览 722人参与
# 听劝,我这个简历该怎么改? #
63516次浏览 622人参与
牛客网
牛客企业服务