题目来源:链接
题目描述:
统计一个数字在排序数组中出现的次数。
示例 1:
输入:nums = [5,7,7,8,8,10],target = 8
输出:0
代码实现:
def func(nums,target):
def handler(tar):
i,j = 0, len(nums)-1
while i<=j:
m = (i+j)//2
if nums[m]<=tar:
i = m+1
else:
j = m-1
return i
return handler(target)-handler(target-1)
解题思路:
通过二分查找,找出target的下标,再找出target-1的下标,尽管target-1不一定在nums里面
但是依旧可以返回下标(比target小的且在nums中的)
本文介绍了一种使用二分查找算法统计排序数组中特定数值出现频率的方法。通过找到目标值及其前一个值的位置,计算两者之间的差值,即可得到目标值在数组中的出现次数。
154

被折叠的 条评论
为什么被折叠?



