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连接mongodb操作数据示例(mongodb数据库配置类)
Dec 31 Python
Python import自定义模块方法
Feb 12 Python
Python读取Excel的方法实例分析
Jul 11 Python
python字符串与url编码的转换实例
May 10 Python
Python使用ConfigParser模块操作配置文件的方法
Jun 29 Python
django 实现编写控制登录和访问权限控制的中间件方法
Jan 15 Python
pytorch 在网络中添加可训练参数,修改预训练权重文件的方法
Aug 17 Python
python写入数据到csv或xlsx文件的3种方法
Aug 23 Python
Java文件与类动手动脑实例详解
Nov 10 Python
安装Anaconda3及使用Jupyter的方法
Oct 27 Python
python字符串常规操作大全
May 02 Python
python解析照片拍摄时间进行图片整理
Jul 23 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
基于initPHP的框架介绍
2013/04/18 PHP
smarty简单应用实例
2015/11/03 PHP
php编程每天必学之表单验证
2016/03/01 PHP
php简单实现数组分页的方法
2016/04/30 PHP
php数据库操作model类(使用__call方法)
2016/11/16 PHP
Javascript remove 自定义数组删除方法
2009/10/20 Javascript
jQuery实现的立体文字渐变效果
2010/05/17 Javascript
JS Map 和 List 的简单实现代码
2013/07/08 Javascript
JavaScript实现的in_array函数
2014/08/27 Javascript
angularjs中的e2e测试实例
2014/12/06 Javascript
jQuery中slideUp()方法用法分析
2014/12/24 Javascript
3个可以改善用户体验的AngularJS指令介绍
2015/06/18 Javascript
jQuery实现hover合成事件的方法
2015/08/06 Javascript
js生成随机颜色方法代码分享(三种)
2016/12/29 Javascript
layui弹出层效果实现代码
2017/05/19 Javascript
关于Vue.nextTick()的正确使用方法浅析
2017/08/25 Javascript
ECMAScript6变量的解构赋值实例详解
2017/09/19 Javascript
解决vue2 在mounted函数无法获取prop中的变量问题
2018/11/15 Javascript
利用Vue实现一个markdown编辑器实例代码
2019/05/19 Javascript
浅析vue中的provide / inject 有什么用处
2019/11/10 Javascript
JavaScript字符串处理常见操作方法小结
2019/11/15 Javascript
[43:43]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第三场 11.29
2020/12/02 DOTA
Python的ORM框架SQLObject入门实例
2014/04/28 Python
python实现的简单RPG游戏流程实例
2015/06/28 Python
浅谈Python NLP入门教程
2017/12/25 Python
Python获取CPU、内存使用率以及网络使用状态代码
2018/02/08 Python
火车票抢票python代码公开揭秘!
2018/03/08 Python
对django xadmin自定义菜单的实例详解
2019/01/03 Python
如何将PySpark导入Python的放实现(2种)
2020/04/26 Python
HTML5 FormData 方法介绍以及实现文件上传示例
2017/09/12 HTML / CSS
气象学专业个人求职信
2014/03/15 职场文书
土建专业大学生自荐信范文
2014/04/09 职场文书
文明之星事迹材料
2014/05/09 职场文书
小学五一劳动节活动总结
2015/02/09 职场文书
2015年党日活动总结范文
2015/03/25 职场文书
用python画城市轮播地图
2021/05/28 Python