class Solution:
    def GetNumberOfK(self , data: List[int], k: int) -> int:
        # write code here
        first = self.GetFirstK(data, k)
        last = self.GetLastK(data, k)
        
        return last - first 
    # 找到左边界
    def GetFirstK(self, data, k):
        left = 0
        right = len(data)
        while left < right:
            mid = (left + right) // 2
            if data[mid] >= k:
                right = mid
            else:
                left = mid + 1
        return left
    #找到右边界
    def GetLastK(self, data, k):
        left = 0
        right = len(data)
        while left < right:
            mid = (left + right) // 2
            if data[mid] > k:
                right = mid
            else:
                left = mid + 1
        return left