题解 | #数字在升序数组中出现的次数#
数字在升序数组中出现的次数
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 中带感叹号需要琢磨下。容易变式。
这道题蛮巧妙的。