每日一题 【每日一题】经典二分查找 -Python-20211015

Jack · 2021年10月15日 · 最后由 Jack 回复于 2021年10月16日 · 48 次阅读
本帖已被设为精华帖!
  1. 问题描述: 在一个排序数组中找目标数,返回该目标数出现的任意一个位置,如果不存在,返回-1
  2. 问题示例: nums = [1, 2, 2, 4, 5, 5], 目标数 target = 2,则输出 1 或 2;目标数 target = 6 ,输出-1
Jack 将本帖设为了精华贴 10月15日 20:50

参考代码:

class Solution:
    def findPosition(self, nums, target):
        if len(nums) is 0:
            return -1
        start = 0
        end = len(nums) -1
        while start + 1 < end:
            mid = start + (end - start)//2
            if nums[mid] == target:
                end = mid
            elif nums[mid] < target:
                start = mid
            else:
                end = mid
        if nums[start] == target:
            return start
        if nums[end] == target:
            return end
        return -1
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册