题解 | #数字在升序数组中出现的次数#
数字在升序数组中出现的次数
https://www.nowcoder.com/practice/70610bf967994b22bb1c26f9ae901fa2
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param nums int整型一维数组
# @param k int整型
# @return int整型
#
class Solution:
def bisearch(self, nums:list[int], k:float) -> int:
left = 0
right = len(nums)-1
while left<=right: #!!!!!
mid = (left+right)//2
if nums[mid]<k:#!!!!!
left = mid+1
elif nums[mid]>k:#!!!!!
right = mid-1
return left
def GetNumberOfK(self, nums: list[int], k: int) -> int:
return self.bisearch(nums, k + 0.5)-self.bisearch(nums, k - 0.5)#!!!!!
code 中带感叹号需要琢磨下。容易变式。
这道题蛮巧妙的。
华为技术有限公司工作强度 1291人发布