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 排序数组中查找数字
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 本系列导航:剑指offer(第二版)java实现导航帖 面试题53:数字在排序数组中出现的次数 题目要求:统计一个...
- //数组中字符串排序不区分大小写,按照数字排序 - (NSArray*) stringSortNuber:(NSA...