二分法,找到上界和下界

class Solution:
    def GetNumberOfK(self, data, k):
        n=len(data)
        l=0
        r=n
        ans=0
        # 找到升序序列中的下界
        while(l<r):
            mid=(l+r)//2
            if(data[mid]<k):
                l=mid+1
            else:
                r=mid
        left=l
        #  找到升序序列中的上界
        l=0
        r=n
        while(l<r):
            mid=(l+r)//2
            if(data[mid]<=k):
                l=mid+1
            else:
                r=mid
        right=l
        #上界减去下界为数字在升序数组出现的次数
        return right-left