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


Posted in Python onFebruary 13, 2019

本文实例讲述了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调用windows api锁定计算机示例
Apr 17 Python
Python用threading实现多线程详解
Feb 03 Python
python3操作mysql数据库的方法
Jun 23 Python
一文总结学习Python的14张思维导图
Oct 17 Python
Python实现比较扑克牌大小程序代码示例
Dec 06 Python
pandas对指定列进行填充的方法
Apr 11 Python
python之super的使用小结
Aug 13 Python
PyQt5+Caffe+Opencv搭建人脸识别登录界面
Aug 28 Python
学习Python爬虫的几点建议
Aug 05 Python
python绕过图片滑动验证码实现爬取PTA所有题目功能 附源码
Jan 06 Python
浅谈Python数学建模之固定费用问题
Jun 23 Python
Python中的tkinter库简单案例详解
Jan 22 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
Feb 13 #Python
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
Feb 13 #Python
Python实现Event回调机制的方法
Feb 13 #Python
Python socket实现多对多全双工通信的方法
Feb 13 #Python
对python文件读写的缓冲行为详解
Feb 13 #Python
python单线程文件传输的实例(C/S)
Feb 13 #Python
Python 实现文件打包、上传与校验的方法
Feb 13 #Python
You might like
索尼SONY ICF-7600A(W)电路分析
2021/03/01 无线电
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
2012/01/12 PHP
PHP中的reflection反射机制测试例子
2014/08/05 PHP
将PHP从5.3.28升级到5.3.29时Nginx出现502错误
2015/05/09 PHP
PHP文件缓存类实现代码
2015/10/26 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
2016/08/17 PHP
JS+CSS制作DIV层可(最小化/拖拽/排序)功能实现代码
2013/02/25 Javascript
js页面跳转的问题(跳转到父页面、最外层页面、本页面)
2013/08/14 Javascript
IE6下javasc#ipt:void(0) 无效的解决方法
2013/12/23 Javascript
浅谈javascript 归并方法
2015/01/21 Javascript
高性能JavaScript DOM编程(1)
2015/08/11 Javascript
原生javascript实现的ajax异步封装功能示例
2016/11/03 Javascript
BootstrapTable refresh 方法使用实例简单介绍
2017/02/20 Javascript
Vue中计算属性computed的示例解读
2017/07/26 Javascript
windows下更新npm和node的方法
2017/11/30 Javascript
Servlet返回的数据js解析2种方法
2019/12/12 Javascript
vue-router的hooks用法详解
2020/06/08 Javascript
vue项目查看vue版本及cli版本的实现方式
2020/10/24 Javascript
微信小程序绘制半圆(弧形)进度条
2020/11/18 Javascript
[46:47]2014 DOTA2国际邀请赛中国区预选赛 DT VS HGT
2014/05/22 DOTA
[01:01:51]EG vs VG Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
[10:05]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD 选手采访
2021/03/11 DOTA
win10 64bit下python NLTK安装教程
2018/09/19 Python
Pandas DataFrame 取一行数据会得到Series的方法
2018/11/10 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
如何使用html5与css3完成google涂鸦动画
2012/12/16 HTML / CSS
详解h5页面在不同ios设备上的问题总结
2019/03/01 HTML / CSS
英国亚马逊官方网站:Amazon.co.uk
2019/08/09 全球购物
高二地理教学反思
2014/01/24 职场文书
亮化工程实施方案
2014/03/17 职场文书
幼儿园安全责任书
2014/04/14 职场文书
大学生励志演讲稿
2014/04/25 职场文书
2014大学生职业生涯规划书最新范文
2014/09/13 职场文书
大学新生军训自我鉴定
2014/09/18 职场文书
公民代理授权委托书
2014/09/24 职场文书
画展观后感
2015/06/17 职场文书