数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数。
- 可以分别求出这个数字最后出现的和最早出现的位置,得到差值即可
- C++ 代码
class Solution {
public:
int GetNumberOfK(vector<int> data ,int k) {
if(data.empty()) return 0;
int l=0,r=data.size()-1;
int mid = (l+r)/2;
while(r>=l)
{
if(data[mid]== k) break;
if(data[mid]>k)
r=mid-1;
if(data[mid]<k)
l=mid+1;
mid = (l+r)/2;
}
if(data[mid]!=k)return 0;
int tmp=mid;
int sum=0;
int i,j;
for(i=mid;i>=0;i--)
if(data[i]==k)sum++;
else break;
for(i=tmp+1;i<data.size();i++)
if(data[i]==k)sum++;
else break;
return sum;
}
};
本文标题:数字在排序数组中出现的次数
本文链接:https://www.haomeiwen.com/subject/dlrjlktx.html
网友评论