亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

本文實例講述了Python查找數(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))

運行結果:

3

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

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

相關文章

最新評論