题解 | 数字在升序数组中出现的次数
数字在升序数组中出现的次数
https://www.nowcoder.com/practice/70610bf967994b22bb1c26f9ae901fa2
二分,找到k+0.5和k-0.5的位置,相减就是k的个数
#include <cstddef> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型vector * @param k int整型 * @return int整型 */ int fun(vector<int>& nums, float k) { int left = 0; int right = nums.size()-1; while (left <= right) { int mid = (left+right)/2; if(k > nums[mid]) { left = mid+1; } else if (k < nums[mid]) { right = mid-1; } } return left; } int GetNumberOfK(vector<int>& nums, int k) { return fun(nums, k+0.5)-fun(nums, k-0.5) ; } };