Python查找数组中数值和下标相等的元素示例【二分查找】
2019-05-09 18:02
906 查看
本文实例讲述了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程序设计有所帮助。
您可能感兴趣的文章:
相关文章推荐
- 快速查找数组中的某个元素并返回下标示例
- 面试题:数组中数值和下标相等的元素
- 程序员面试题目总结--数组(二)【二分查找、找出给定数字出现次数、两个有序整型数组交集、找出数组中唯一的重复元素、判断数组中的数值是否连续相邻】
- 动态数组,数组初始化,数组内存释放,向数组中添加一个元素,向数组中添加多个元素,数组打印,顺序查找,二分查找,查找数组并返回地址,冒泡排序,改变数组中某个元素的值,删除一个数值,删除所有,查找含有
- 剑指Offer 数组中数值和下标相等的元素
- 快速查找数组中的某个元素并返回下标示例
- AcWing 69 数组中数值和下标相等的元素
- 二分查找 —— 有序数组不小于(不大于)某数的第一个(最后一个)元素
- Leetcode540. 二分查找找出数组中只出现一次的元素
- Python3中NumPy数组寻找特定元素下标的两种方法
- Python实现在某个数组中查找一个值的算法示例
- 154.leetcode Find Minimum in Rotated Sorted Array II(hard)[排序数组 重复元素 二分查找]
- js数组的用法以及数组根据下标(数值或字符)移除元素
- Python实现变量数值交换及判断数组是否含有某个元素的方法
- 利用二分查找在循环递增数组中检索一个元素
- 利用js查找数组中指定元素并返回该元素的所有索引示例
- 【二分查找】查找数组中第一个比k大的数的下标
- 【二分查找】在一个长度未知的数组中查找一个数,返回其下标,时间复杂度O(logn)
- 优化从升序数组中查找输入元素的下标的方法
- 顺序查找就是按照数组中的元素排列序号,从前往后一个一个查,如果找到则返回当前元素所在的下标