题解 | #二分查找-II#

二分查找-II

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

两次二分查找,一次查是target,一次查不是target

    def search(self , nums: List[int], target: int) -> int:
        # write code here
        l,r = 0,len(nums)-1
        while l <= r:
            mid1 = (l+r)//2
            if nums[mid1] == target:
                while l <= mid1:
                    mid2 = (l+mid1)//2
                    if nums[mid2] == target:
                        mid1 = mid2 - 1
                    else:
                        l = mid2 + 1
                return l
            elif nums[mid1] < target:
                l = mid1 + 1
            elif nums[mid1] > target:
                r = mid1 - 1
        return -1
全部评论

相关推荐

鬼迹人途:你去投一投尚游游戏,服务器一面,第一个图算法,做完了给你一个策略题,你给出方案他就提出低概率问题,答不上当场给你挂
点赞 评论 收藏
分享
找到实习了&nbsp;给了150一天&nbsp;但是说是低代码&nbsp;值得去吗
码农索隆:是在没实习,可去,待个一两周,不行就润呗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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