您的位置:首页 > 脚本大全 > > 正文

python找出数组的最大值(Python查找数组中数值和下标相等的元素示例二分查找)

更多 时间:2022-03-30 09:41:16 类别:脚本大全 浏览量:2840

python找出数组的最大值

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

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

题目描述:

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

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

算法示例:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • # -*- 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

    您可能感兴趣