递归二分思路

class Solution:
    result = 0
    def GetNumberOfK(self , data: List[int], k: int) -> int:
        m = int(len(data)/2)
        if len(data) == 0:
            return self.result  # 递归结束条件,递归结束时返回 result
        elif data[m] == k:
            # 中间值等于k,则递归传入剔除中间元素的列表
            self.result += 1  
            return self.GetNumberOfK(data[:m]+data[m+1:],k)
        elif data[m] < k:
            # 中间值小于k,则递归右半部分
            return self.GetNumberOfK(data[m+1:],k)
        else:
            # 中间值大于k,则递归左半部分
            return self.GetNumberOfK(data[:m],k)