题解 | 数字在升序数组中出现的次数
数字在升序数组中出现的次数
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) ;
}
};


美团公司福利 3017人发布