题目:在一个排序数组中找一个数,返回该数出现的任意位置,如果不存在,返回-1
样例
给出数组 [1, 2, 2, 4, 5, 5].
对于 target = 2, 返回 1 或者 2.
对于 target = 5, 返回 4 或者 5.
对于 target = 6, 返回 -1.
思路:就是一直将目标与A[mid]进行比较,直到目标=A[mid]
代码:
class Solution:
# @param {int[]} A an integer array sorted in ascending order
# @param {int} target an integer
# @return {int} an integer
def findPosition(self, A, target):
# Write your code here
if len(A)<1:
return-1
begin=0
end=len(A)-1
if target==A[0]:
return begin
if target==A[-1]:
return end
while begin<end:
mid = begin + (end - begin)/2 #这里应该//2 不然mid会出现小数点,但是lintcode自动可以取整。
if target==A[mid]:
return mid
elif target <A[ mid]:
end=mid -1
else:
begin=mid+1
return -1