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

 更新时间:2019年02月13日 11:15:45   作者:hustfc  
这篇文章主要介绍了Python查找数组中数值和下标相等的元素,结合实例形式分析了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相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python列表(list)操作技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

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

相关文章

  • python3实现SMTP发送邮件详细教程

    python3实现SMTP发送邮件详细教程

    这篇文章主要为大家详细介绍了python3实现SMTP发送邮件的详细教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • Python通过TensorFlow卷积神经网络实现猫狗识别

    Python通过TensorFlow卷积神经网络实现猫狗识别

    今天小编就为大家分享一篇关于Python通过TensorFlow卷积神经网络实现猫狗识别,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • python使用numpy按一定格式读取bin文件的实现

    python使用numpy按一定格式读取bin文件的实现

    这篇文章主要介绍了python使用numpy按一定格式读取bin文件的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • Django组件content-type使用方法详解

    Django组件content-type使用方法详解

    这篇文章主要介绍了Django组件content-type使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • python实现图像随机裁剪的示例代码

    python实现图像随机裁剪的示例代码

    这篇文章主要介绍了python实现图像随机裁剪的示例代码,帮助大家更好的理解和使用python处理图片,感兴趣的朋友可以了解下
    2020-12-12
  • 基于python获取本地时间并转换时间戳和日期格式

    基于python获取本地时间并转换时间戳和日期格式

    这篇文章主要介绍了基于python获取本地时间并转换时间戳和日期格式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • Python使用cProfile分析和定位应用性能瓶颈点

    Python使用cProfile分析和定位应用性能瓶颈点

    cProfile 是 Python 标准库中的一个模块,用于对 Python 程序进行性能分析,它能输出每个函数的调用次数、执行耗时等详细信息,下面我们来看看如何使用cProfile分析和定位应用性能瓶颈点吧
    2024-12-12
  • Django model.py表单设置默认值允许为空的操作

    Django model.py表单设置默认值允许为空的操作

    这篇文章主要介绍了Django model.py表单设置默认值允许为空的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • 在Django中实现定时任务的多种方法

    在Django中实现定时任务的多种方法

    在 Django 项目中实现定时任务可以帮助自动化执行一些后台任务,如数据清理、定期报告生成等,以下是几种常见的实现方式,每种方法都有其独特的优势和适用场景,感兴趣的小伙伴跟着小编一起来看看吧
    2024-08-08
  • pycharm打包python项目为exe执行文件的实例代码

    pycharm打包python项目为exe执行文件的实例代码

    这篇文章主要介绍了pycharm打包python项目为exe执行文件,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07

最新评论