题解 | #二分查找-II# Python 想问一个问题

二分查找-II

http://www.nowcoder.com/practice/4f470d1d3b734f8aaf2afb014185b395

class Solution:
    def search(self , nums , target ):
        # write code here
        begin = 0
        end = len(nums) - 1
        while begin <= end:
            if target == nums[(begin + end)//2]:
                index = (begin + end)//2
#                 while target == nums[index -1] and index > 0:
                while index > 0 and target == nums[index -1]:
                        index -= 1
                return index
            elif target > nums[(begin + end)//2]:
                begin = (begin + end)//2 + 1
            else:
                end = (begin + end)//2 - 1
        return -1

假设用例是[1,1,1],1
第10行代码index = 1,进入循环,依旧满足target = nums[0],此时经过第11行index = 0,不再满足index>0.
但是用第9行测试不应该是在验证target == nums[-1],此时不应该报out of range的错误吗,但是没有,想问下是为什么?
求大佬解答,谢谢.

全部评论

相关推荐

06-27 12:30
延安大学 C++
实习+外包,这两个公司底层融为一体了,如何评价呢?
一表renzha:之前面了一家外包的大模型,基本上都能答出来,那面试官感觉还没我懂,然后把我挂了,我都还没嫌弃他是外包,他把我挂了……
点赞 评论 收藏
分享
野猪不是猪🐗:我assume that你must技术aspect是solid的,temperament也挺good的,however面试不太serious,generally会feel style上不够sharp
点赞 评论 收藏
分享
后来123321:别着急,我学院本大二,投了1100份,两个面试,其中一个还是我去线下招聘会投的简历,有时候这东西也得看运气
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务