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 相关文章推荐
一则python3的简单爬虫代码
May 26 Python
python中requests库session对象的妙用详解
Oct 30 Python
Python爬虫框架scrapy实现的文件下载功能示例
Aug 04 Python
python使用多进程的实例详解
Sep 19 Python
Python图像处理实现两幅图像合成一幅图像的方法【测试可用】
Jan 04 Python
python获取磁盘号下盘符步骤详解
Jun 19 Python
Flask框架学习笔记之消息提示与异常处理操作详解
Aug 15 Python
python 操作hive pyhs2方式
Dec 21 Python
Python semaphore evevt生产者消费者模型原理解析
Mar 18 Python
通过实例了解python__slots__使用方法
Sep 14 Python
python之pygame模块实现飞机大战完整代码
Nov 29 Python
总结Python变量的相关知识
Jun 28 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
php 将bmp图片转为jpg等其他任意格式的图片
2009/06/29 PHP
PHP中使用curl伪造IP的简单方法
2015/08/07 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
2017/12/25 PHP
详解json在php中的应用
2018/09/30 PHP
PHP实现简易计算器功能
2020/08/28 PHP
PHP函数用法详解【初始化、嵌套、内置函数等】
2020/06/02 PHP
PHP队列场景以及实现代码实例详解
2021/02/26 PHP
Avengerls vs Newbee BO3 第三场2.18
2021/03/10 DOTA
JS 判断undefined的实现代码
2009/11/26 Javascript
javascript中hasOwnProperty() 方法使用指南
2015/03/09 Javascript
JS仿京东移动端手指拨动切换轮播图效果
2020/04/10 Javascript
js时间戳格式化成日期格式的多种方法介绍
2017/02/16 Javascript
JS对象序列化成json数据和json数据转化为JS对象的代码
2017/08/23 Javascript
BootStrap Validator 根据条件在JS中添加或移除校验操作
2017/10/12 Javascript
详解webpack-dev-server使用方法
2018/09/14 Javascript
vue使用el-upload上传文件及Feign服务间传递文件的方法
2019/03/15 Javascript
node解析修改nginx配置文件操作实例分析
2019/11/06 Javascript
nodejs如何在package.json中设置多条启动命令
2020/03/16 NodeJs
vue操作dom元素的3种方法示例
2020/09/20 Javascript
python的re模块应用实例
2014/09/26 Python
在Python中操作字典之setdefault()方法的使用
2015/05/21 Python
详解Python函数作用域的LEGB顺序
2016/05/14 Python
基于ID3决策树算法的实现(Python版)
2017/05/31 Python
Python使用pandas处理CSV文件的实例讲解
2018/06/22 Python
pytorch绘制并显示loss曲线和acc曲线,LeNet5识别图像准确率
2020/01/02 Python
解决python3.x安装numpy成功但import出错的问题
2020/11/17 Python
美国药妆网站:EDCskincare.com(防晒、痤疮、抗衰老等)
2017/04/28 全球购物
韩国最大的购物网站:Gmarket
2019/06/20 全球购物
服务中心夜班服务员岗位职责
2013/11/27 职场文书
集团公司总经理岗位职责
2013/12/20 职场文书
村捐赠仪式答谢词
2014/01/21 职场文书
对教师的评语
2014/04/28 职场文书
银行优秀员工事迹材料
2014/05/29 职场文书
2015年网络舆情工作总结
2015/07/24 职场文书
机关干部正风肃纪心得体会
2016/01/15 职场文书
浅析InnoDB索引结构
2021/04/05 MySQL