题解 | #数字在升序数组中出现的次数# | Rust
数字在升序数组中出现的次数
https://www.nowcoder.com/practice/70610bf967994b22bb1c26f9ae901fa2
struct Solution{ } impl Solution { fn new() -> Self { Solution{} } /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @param k int整型 * @return int整型 */ pub fn GetNumberOfK(&self, nums: Vec<i32>, k: i32) -> i32 { let mut l = 0 as i32; let mut r = nums.len() as i32 - 1; let mut pos: i32 = -1; while l <= r { let mut mid = l + (r - l)/2; if nums[mid as usize] == k { pos = mid; break; } else if nums[mid as usize] > k { r = mid - 1; } else { l = mid + 1; } } if pos == -1 { return 0 as i32; } let mut cnt: i32 = 1; l = pos - 1; r = pos + 1; while l >= 0 { if nums[l as usize] == k { cnt += 1; } else { break; } l-=1; } while r < nums.len() as i32 { if nums[r as usize] == k { cnt += 1; } else { break; } r+=1; } return cnt; } }