class Solution {
public:
int findPos(vector<int> v,double x)
{
int l = 0;
int r = v.size()-1;
//核心代码就这么多
while(l<=r)
{
int mid = (l+r)/2;
if(v[mid]<x)
{
l=mid+1;
}
else if(v[mid]>x)
{
r=mid-1;
}
}
return l;
}
int GetNumberOfK(vector<int> v ,int k) {
int pos1 = findPos(v,k-0.5);
int pos2 = findPos(v,k+0.5);
return pos2-pos1;
}
};
本文介绍了一种查找算法的具体实现,该算法能够高效地确定一个给定数值在一个有序整数数组中的位置范围。通过定义两个辅助函数`findPos` 和 `GetNumberOfK`,实现了对指定元素出现次数的快速查找。
795

被折叠的 条评论
为什么被折叠?



