最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2019年02月13日 11:15:45   作者:hustfc  
這篇文章主要介紹了Python查找數(shù)組中數(shù)值和下標相等的元素,結(jié)合實例形式分析了Python基于二分查找針對數(shù)組查找相關(guān)實現(xiàn)技巧,需要的朋友可以參考下

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

題目描述:

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

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

算法示例:

# -*- 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))

運行結(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īng)典教程

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

相關(guān)文章

最新評論

伊金霍洛旗| 清涧县| 闸北区| 报价| 阆中市| 涞水县| 莱州市| 德兴市| 黄浦区| 吉首市| 凉城县| 澳门| 台湾省| 久治县| 麦盖提县| 佛冈县| 郴州市| 孟州市| 甘洛县| 云南省| 蒙自县| 盱眙县| 新化县| 小金县| 嘉定区| 游戏| 砚山县| 邵阳县| 卫辉市| 依兰县| 伊宁市| 思南县| 光山县| 澜沧| 建阳市| 库尔勒市| 莎车县| 尼玛县| 敦化市| 扶风县| 哈巴河县|