class Solution(object):
def searchRange(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: int
"""
def searchLeft(l,r):
int_re=r
while l<=r:
middle=(l+r)/2
if nums[middle]==target:
int_re=middle
r=middle-1
else :
l=middle+1
return int_re
def searchRight(l, r):
int_re = l
while l <= r:
middle = (l + r) / 2
if nums[middle] == target:
int_re = middle
l = middle + 1
else:
r = middle - 1
return int_re
l = 0
r = len(nums)-1
while l <= r:
mid = (l+r)/2
if nums[mid]==target:
return [searchLeft(l,mid),searchRight(mid,r)]
elif nums[mid]<target:
l = mid+1
else:
r = mid-1
return [-1,-1]
还是二分查找呗,不过searchLeft()和searchRight()能不能写成一个函数啊?感觉这样的代码太不简洁了