二分
int GetNumberOfK(vector<int> data ,int k) {
int l=0,r=data.size()-1;
int m=(l+r)/2;
bool isfind=false;
int pos=-1;
while(!isfind && l<=r)
{
if(k>data[m])
{
l=m+1;
m=(l+r)/2;
}
else if(k<data[m])
{
r=m-1;
m=(l+r)/2;
}
else
{
isfind=true;
pos=m;
}
}
if (pos==-1) return 0;
int sum=1,index=pos+1;
while(index<data.size() && data[index]==data[pos])
{
index++;
sum++;
}
index=pos-1;
while(index>=0 && data[index]==data[pos])
{
index--;
sum++;
}
return sum;
}