這篇文章給大家介紹Python中怎么查找數(shù)組中數(shù)值和下標(biāo)相等的元素,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:主機域名、虛擬空間、營銷軟件、網(wǎng)站建設(shè)、承德縣網(wǎng)站維護(hù)、網(wǎng)站推廣。題目描述:
假設(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 -*- #! 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中怎么查找數(shù)組中數(shù)值和下標(biāo)相等的元素就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。