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