题解 | #数字在升序数组中出现的次数#
数字在升序数组中出现的次数
http://www.nowcoder.com/practice/70610bf967994b22bb1c26f9ae901fa2
递归二分思路
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)