Search for a Range
分别找左边界与右边界,并采用二分法,时间性能O(lg(n))
if len(nums) == 0:
return [-1, -1]
i = 0
j = len(nums) - 1
while i<j:
k = (i + j) / 2
if nums[k] < target:
i = k + 1
else:
j = k
if nums[i] != target:
return [-1, -1]
else:
l = i
j = len(nums) - 1
while i<j:
k = (i + j + 1) / 2
if nums[k] > target:
j = k - 1
else:
i = k
r = j
return [l,r]