您好,登錄后才能下訂單哦!
這篇文章給大家介紹Python中怎么查找數組中數值和下標相等的元素,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
題目描述:
假設一個單調遞增的數組中的每個元素都是整數并且是唯一的。請編程實現一個函數,找出數組中任意一個數值等于其下標的元素,例如在數組【-3,-1,1,3,5】中,3和他的下標相等。
采用二分查找:如果數組中的數字小于下標,由于下標是-1的遞減數列,但是數組中的元素差值大于等于-1,因此左邊的不可能等于下標。如果數組中的數字大于下標,同理,之后的數字肯定都大于下標,往左邊查找。
算法示例:
# -*- 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中怎么查找數組中數值和下標相等的元素就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。