国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python查找數(shù)組中數(shù)值和下標(biāo)相等的元素示例【二分查找】

2020-02-16 01:07:43
字體:
供稿:網(wǎng)友

本文實例講述了Python查找數(shù)組中數(shù)值和下標(biāo)相等的元素。分享給大家供大家參考,具體如下:

題目描述:

假設(shè)一個單調(diào)遞增的數(shù)組中的每個元素都是整數(shù)并且是唯一的。請編程實現(xiàn)一個函數(shù),找出數(shù)組中任意一個數(shù)值等于其下標(biāo)的元素,例如在數(shù)組【-3,-1,1,3,5】中,3和他的下標(biāo)相等。

采用二分查找:如果數(shù)組中的數(shù)字小于下標(biāo),由于下標(biāo)是-1的遞減數(shù)列,但是數(shù)組中的元素差值大于等于-1,因此左邊的不可能等于下標(biāo)。如果數(shù)組中的數(shù)字大于下標(biāo),同理,之后的數(shù)字肯定都大于下標(biāo),往左邊查找。

算法示例:

# -*- coding:utf-8 -*-#! python3class 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 -1numbers = [-3,-1,1,3,5]print(Solution().numberEqualSubscript(numbers))

運行結(jié)果:

3

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python列表(list)操作技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程》

希望本文所述對大家Python程序設(shè)計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 大渡口区| 石楼县| 乌拉特中旗| 安福县| 永泰县| 射阳县| 梧州市| 佛教| 海伦市| 拜泉县| 元氏县| 南城县| 凌海市| 霸州市| 梓潼县| 青川县| 固阳县| 许昌市| 新巴尔虎右旗| 襄樊市| 长武县| 扎赉特旗| 龙井市| 招远市| 水富县| 读书| 桃源县| 廉江市| 八宿县| 凤冈县| 太仓市| 山东| 汶上县| 新和县| 仙居县| 清镇市| 杭锦后旗| 时尚| 汉源县| 巴里| 鲁甸县|