程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Sword finger offer python:51 Elements in an array whose values and subscripts are equal

編輯:Python

subject : Suppose a Monotone increasing Each element in the array of is an integer and unique . Please program a function to find any element in the array whose value is equal to its subscript . for example , In the array [-3, -1, 1, 3, 5] in , Numbers 3 Equal to its subscript .

Input :[-3, -1, 1, 3, 5]
Output :3
Be careful : If it doesn't exist , Then return to -1.

Ideas : Two points

Code :

class Solution:
def func(self , nums):
if len(nums) == 0:
return -1
lo , hi = 0 , len(nums)-1
while lo < hi:
mid = (lo + hi) // 2
if nums[mid] < mid:
lo = mid + 1
elif nums[mid] > mid:
hi = mid -1
else:
return mid
return -1
a = [-3, -1, 1, 3, 5]
s = Solution()
print(s.func(a))


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved