class Solution():
def numcount(self,A,k):
if A == [] or k not in A:
return 0
left = 0
right = len(A)-1
return self.getlastindex(A,k,left,right) - self.getfirstindex(A,k,left,right)+1
def getfirstindex(self,A,k,left,right):
mid = int((left+right)/2)
if A[mid] == k:
if mid == 0:
return mid
if A[mid-1] == k:
return self.getfirstindex(A,k,left,mid-1)
else:
return mid
elif A[mid] < k:
return self.getfirstindex(A,k,mid+1,right)
elif A[mid] > k:
return self.getfirstindex(A,k,left,mid-1)
def getlastindex(self,A,k,left,right):
mid = int((left+right)/2)
if A[mid] == k:
if mid == right:
return mid
if A[mid+1] == k:
return self.getlastindex(A,k,mid+1,right)
else:
return mid
elif A[mid] < k:
return self.getlastindex(A,k,mid+1,right)
elif A[mid] > k:
return self.getlastindex(A,k,left,mid-1)
s = Solution()
A = [1,2,3,3,3,4,5]
print(s.numcount(A,3))
53 排序数组中查找数字
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 本系列导航:剑指offer(第二版)java实现导航帖 面试题53:数字在排序数组中出现的次数 题目要求:统计一个...
- //数组中字符串排序不区分大小写,按照数字排序 - (NSArray*) stringSortNuber:(NSA...