给定一个数组A及其大小n,同时给定需要查找的元素值x,已知数组A是由一个排过序的数组向左移位了一定长度得到的,请返回x在现数组的位置(位置从零开始)。保证数组中元素互异。
测试样例:
[6,1,2,3,4,5],6,6
返回:0
# -*- coding:utf-8 -*-
class Finder:
def findElement(self, A, n, x):
# write code here
if n<1:
return -1
l=0
r=n-1
while l<=r:
mid=(l+r)/2
if A[mid]==x:
return mid
elif A[mid]<x:
if A[l]>A[mid] and x>A[r]:
r=mid-1
else:
l=mid+1
else:
if A[l]>x and A[l]<A[mid]:
l=mid+1
else:
r=mid-1
return -1