题解 | #二分查找-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
全部评论

相关推荐

昨天 18:09
门头沟学院 Java
苍穹外卖和谷粒商城这俩是不是烂大街了,还能做吗?
想去重庆的鸽子在吐槽:你不如把这俩做完自己搞明白再优化点再来问 何必贩卖焦虑
点赞 评论 收藏
分享
字节一直是我的白月光,考虑到转正还是拒了日常实习。
从明天开始狠狠卷JV...:为什么你释放的offer没流到我头上
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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