
正文
剑指offer-数字在排序数组中出现的次数-数组-python
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
题目描述统计一个数字在排序数组中出现的次数。 python 内置函数 count()一行就能搞定 解题思路
二分查找到给定的数字及其坐标。以该坐标为中点,向前向后找到这个数字的 始 – 终 位置。
class Solution:
def GetNumberOfK(self, data, k):
if len(data)<1:
return 0
mid = len(data)//2
if data[mid] == k:
start,end = mid,mid
for i in range(mid,-1,-1):
if data[i]==k:start-=1
for j in range(mid+1,len(data)):
if data[j]==k:end+=1
return end - start
elif data[mid] < k:
return self.GetNumberOfK(data[:mid],k)
else:
return self.GetNumberOfK(data[mid+1:],k)
print Solution().GetNumberOfK([1,2,3,3,3,3],3)
统计一个数字在排序数组中出现的次数。
python 内置函数 count()一行就能搞定
解题思路
二分查找到给定的数字及其坐标。以该坐标为中点,向前向后找到这个数字的 始 – 终 位置。
class Solution:
def GetNumberOfK(self, data, k):
if len(data)<1:
return 0
mid = len(data)//2
if data[mid] == k:
start,end = mid,mid
for i in range(mid,-1,-1):
if data[i]==k:start-=1
for j in range(mid+1,len(data)):
if data[j]==k:end+=1
return end - start
elif data[mid] < k:
return self.GetNumberOfK(data[:mid],k)
else:
return self.GetNumberOfK(data[mid+1:],k)
print Solution().GetNumberOfK([1,2,3,3,3,3],3)








