53-3-数组中数值和下标相等的元素

题目:假设一个单调递增的数组里的每个元素都是整数并且是唯一的。请找出数组中任意一个数值等于其下标的元素。

def get_num_same_index(nums):
    if len(nums)<1:
        return -1
    begin,end = 0,len(nums)-1
    while begin<end:
        mid = (begin+end)//2
        if nums[mid] == mid:
            return nums[mid]
        elif nums[mid]<mid:
            begin = mid+1
        elif nums[mid]>mid:
            end = mid-1
    return -1

  注:使用二分查找,当中间的数和索引相同时,返回值,结束;当中间值小于索引时,begin指向中间值+1;当中间值大于索引时,end指向中间值-1。

posted @ 2019-09-10 21:09  尘世中一个迷途小书童  阅读(176)  评论(0编辑  收藏  举报