这题应该还是考察二分法...吧,下面注释掉了直接遍历计数法

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param data int整型一维数组 
# @param k int整型 
# @return int整型
class Solution:
    def GetNumberOfK(self , data: List[int], k: int) -> int:
        i, j = 0, len(data) - 1
        while i <= j:
            mid = (i + j) // 2
            if data[mid] <= k: 
                i = mid + 1
            else: 
                j = mid - 1
        # return i,j
        right = i
        # 若数组中无 k ,则提前返回
        if j >= 0 and data[j] != k: 
            return 0
        # 搜索左边界 left
        i = 0
        while i <= j:
            mid = (i + j) // 2
            if data[mid] < k: 
                i = mid + 1
            else: 
                j = mid - 1
        left = j
        return right - left - 1
# class Solution:
#     def GetNumberOfK(self , data: List[int], k: int) -> int:
#         a = 0
#         for i in data:
#             if i == k:
#                 a +=1
#         return a