Title Description
Count the number of times a number that appears in the sort array.
Thinking
Dichotomy, respectively, and to find the supremum infimum on digital
# -*- coding:utf-8 -*-
class Solution:
def GetNumberOfK(self, data, k):
if not data:
return 0
i = 0
j = len(data)-1
#找下确界
while i<j:
mid = int((i+j+1)//2)
if data[mid]<k:
i = mid
else: # >=k
j = mid-1
if data[i]==k:
left = i-1
else:
left = i
j = len(data)-1
#上确界
while i<j:
mid = int((i+j)//2)
if data[mid] <=k:
i = mid+1
else: #>k
j = mid
if data[j]==k:
j+=1
if j-left-1<0:
return 0
return j-left-1