1.二分法;
class Solution {
public:
int GetNumberOfK(vector<int> data ,int k) {
int len=data.size(),l=0,r=len-1,ans=0;</int>
while(l<=r)
{
int mid=l+(r-l)/2;
if(data[mid]<k)
{
l=mid+1;
}
else if(data[mid]>k)
{
r=mid-1;
}
else{
int a=mid-1;
int b=mid+1;
ans++;
while(a>=0&&data[a]==k)
{
ans++;
a--;
}
while(b<=r&&data[b]==k)
{
ans++;
b++;
}
break;
}
}
return ans;
}};

京公网安备 11010502036488号