def getNumOfK(data,k):
left=0
right=len(data)-1
leftK=getLeftK(data,k,left,right)
rightK=getRightK(data,k,left,right)
return rightK-leftK+1
def getLeftK(data,k,left,right):
while left<=right:
middle=(left+right)//2
if data[middle]<k:
left=middle+1
else:
right=middle-1
return left
def getRightK(data,k,left,right):
while left<=right:
middle=(left+right)//2
if data[middle]<=k:
left=middle+1
else:
right=middle-1
return right
if __name__=="__main__":
lists=[1,2,3,3,3,3,4,5]
k=3
print(getNumOfK(lists,k))
剑指offer第53题在排序数组中查找数字-----python版
最新推荐文章于 2022-03-04 22:20:35 发布