国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 丹东市| 洞头县| 无锡市| 晋城| 修武县| 焦作市| 阿合奇县| 衡阳县| 沅江市| 昭苏县| 河北省| 明水县| 大新县| 荃湾区| 房山区| 科技| 亚东县| 江口县| 汕尾市| 台南县| 富源县| 扎鲁特旗| 北辰区| 竹山县| 大城县| 莱芜市| 阿瓦提县| 康定县| 高邑县| 阜新市| 深圳市| 广宗县| 建昌县| 沛县| 威宁| 华阴市| 宜昌市| 平泉县| 兰西县| 穆棱市| 武陟县|