题解 | #数字在升序数组中出现的次数# | Golang
数字在升序数组中出现的次数
https://www.nowcoder.com/practice/70610bf967994b22bb1c26f9ae901fa2
package main /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @param k int整型 * @return int整型 */ func GetNumberOfK( nums []int , k int ) int { pos := -1 l,r := 0, len(nums) -1 for l <= r { mid := l + (r - l)/2 if nums[mid] == k { pos = mid break } else if nums[mid] > k { r = mid - 1 } else { l = mid + 1 } } if pos == -1 { return 0 } cnt := 1 l, r = pos -1, pos +1 for ;r < len(nums); r++ { if nums[r] != k { break } else { cnt++ } } for ;l >= 0; l-- { if nums[l] != k { break } else { cnt++ } } return cnt }