网络编程
位置:首页>> 网络编程>> Python编程>> Python查找数组中数值和下标相等的元素示例【二分查找】

Python查找数组中数值和下标相等的元素示例【二分查找】

作者:hustfc  发布时间:2023-11-04 12:55:45 

标签:Python,数组,二分查找

本文实例讲述了Python查找数组中数值和下标相等的元素。分享给大家供大家参考,具体如下:

题目描述:

假设一个单调递增的数组中的每个元素都是整数并且是唯一的。请编程实现一个函数,找出数组中任意一个数值等于其下标的元素,例如在数组【-3,-1,1,3,5】中,3和他的下标相等。

采用二分查找:如果数组中的数字小于下标,由于下标是-1的递减数列,但是数组中的元素差值大于等于-1,因此左边的不可能等于下标。如果数组中的数字大于下标,同理,之后的数字肯定都大于下标,往左边查找。

算法示例:


# -*- coding:utf-8 -*-
#! python3
class Solution:
 def numberEqualSubscript(self, numbers):
   if numbers == []:
     return -1
   left = 0
   right = len(numbers) - 1
   while(left <= right):
     middle = (left + right) >> 1
     if numbers[middle] == middle:
       return middle
     elif numbers[middle] < middle:
       left = middle + 1
     else:
       right = middle - 1
   return -1
numbers = [-3,-1,1,3,5]
print(Solution().numberEqualSubscript(numbers))

运行结果:

3

希望本文所述对大家Python程序设计有所帮助。

来源:https://blog.csdn.net/weixin_36372879/article/details/84950353

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com