Python查找数组中数值和下标相等的元素示例【二分查找】
作者:hustfc 时间:2023-11-04 12:55:45
本文实例讲述了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程序设计有所帮助。
来源:https://blog.csdn.net/weixin_36372879/article/details/84950353
标签:Python,数组,二分查找


猜你喜欢
Python类中的魔法方法之 __slots__原理解析
2023-10-01 18:49:51
JavaScript实现多层颜色选项卡嵌套
2023-09-18 04:42:28

mysql 错误:ERROR 1045 (28000): Access deni
2010-09-30 14:48:00
实例讲解Python3中abs()函数
2023-06-14 02:21:55
Python reduce()函数的用法小结
2022-02-27 11:28:45

opencv导入头文件时报错#include的解决方法
2023-03-28 04:34:34

判断触发器正在处理的是插入,删除还是更新触发
2024-01-19 02:03:28
C#窗体读取EXCEL并存入SQL数据库的方法
2024-01-17 18:16:58
python中pandas库中DataFrame对行和列的操作使用方法示例
2022-07-05 03:09:00
MySQL(win7x64 5.7.16版本)下载、安装、配置与使用的详细图文教程
2024-01-27 01:12:32

用于统计项目中代码总行数的Python脚本分享
2022-05-11 17:37:11
vue中element-ui表格缩略图悬浮放大功能的实例代码
2024-05-29 22:44:31

Java使用正则表达式验证手机号和电话号码的方法
2023-11-20 08:07:12
Python pandas之多级索引取值详解
2022-05-09 14:12:31

什么是Semantics?
2008-04-16 13:45:00
SQL Server 压缩日志及数据库文件大小
2009-05-13 10:29:00
js滑动展开与折叠效果(收缩)
2007-10-09 13:17:00
ORACLE 10g 安装教程[图文]
2023-07-15 07:07:27

JSP + Servlet实现生成登录验证码示例
2023-06-27 02:47:59

基于Python闭包及其作用域详解
2023-11-07 07:22:02
