剑指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)
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步