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

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

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

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

題目描述:

假設(shè)一個(gè)單調(diào)遞增的數(shù)組中的每個(gè)元素都是整數(shù)并且是唯一的。請(qǐng)編程實(shí)現(xiàn)一個(gè)函數(shù),找出數(shù)組中任意一個(gè)數(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 -*-
#! 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))

運(yùn)行結(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)典教程

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

相關(guān)文章

最新評(píng)論

长宁县| 天门市| 芜湖市| 丹寨县| 富阳市| 甘德县| 勃利县| 双鸭山市| 潮安县| 汝南县| 宁安市| 安阳县| 宜黄县| 江孜县| 清镇市| 资溪县| 新丰县| 遂昌县| 鹿邑县| 永登县| 莲花县| 隆化县| 临邑县| 岳普湖县| 奎屯市| 海林市| 东方市| 温泉县| 大邑县| 台山市| 洪湖市| 太仓市| 綦江县| 五大连池市| 三台县| 阿克苏市| 大邑县| 宣恩县| 边坝县| 静安区| 图们市|