```
C++代码–二分
class Solution {
public:
int getNumberOfK(vector[HTML_REMOVED]& nums , int k) {
if(nums.empty()){
return 0;
}
//第一次二分:nums[i]<k
int l =0,r=nums.size()-1;
while(l<r){
int mid=(l+r)/2;
if(nums[mid]<k){
l=mid+1;
}
else{
r=mid;
}
}
if(nums[l]!=k){
return 0;
}
int left=l;
//第二次二分,nums[i]<=k
l=0,r=nums.size()-1;
while(l<r){
int mid=(l+r+1)/2;
if(nums[mid]<=k){
l=mid;
}
else{
r=mid-1;
}
}
return l-left+1;
}
};
两种整数二分的情况,都体现出来了