题解 | #【模板】二分查找、堆#

【模板】堆

https://www.nowcoder.com/practice/13f61c8c92404f5ea5d6fa4c692869fb

二分查找

class Solution:
    # 二分查找, 必须是升序数组。
    def search(self , nums: List[int], target: int) -> int:
        # write code here
        l = 0
        r = len(nums) - 1
        # 从数组首尾开始, 直到两者相遇
        while l <= r:
            # 求中间值
            tgt_ind = l +int((r-l)/2)
            # 检查中间值是否等于目标值
            if nums[tgt_ind] == target:
                return tgt_ind
            # 中间值大于目标值, 表示在左区间
            if nums[tgt_ind] > target:
                r = tgt_ind - 1
            else: # 中间值小于于目标值, 表示在右区间
                l = tgt_ind + 1
        return -1

全部评论

相关推荐

11-15 17:19
湖南大学 Java
成果成果成果果:这是哪个公司的hr,这么离谱吗,我没见过用性别卡技术岗的,身边女性同学拿大厂offer的比比皆是
点赞 评论 收藏
分享
11-09 11:01
济南大学 Java
Java抽象带篮子:外卖项目真得美化一下,可以看看我的详细的外卖话术帖子
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务