原題
在一個(gè)排序數(shù)組中找一個(gè)數(shù),返回該數(shù)出現(xiàn)的任意位置,如果不存在,返回-1
給出數(shù)組 [1, 2, 2, 4, 5, 5]
- 對(duì)于 target = 2, ?返回 1 或者 2.
- 對(duì)于 target = 5, ?返回 4 或者 5.
- 對(duì)于 target = 6, ?返回 -1.
解題思路
- 標(biāo)準(zhǔn)的二分法解決 - Binary Search 模板程序
完整代碼
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 A is None or A == []:
return -1
start, end = 0, len(A) - 1
while start + 1 < end:
mid = start + (end - start) / 2
if A[mid] == target:
return mid
elif A[mid] > target:
end = mid
else:
start = mid
if A[start] == target:
return start
if A[end] == target:
return end
return -1