目的是练习和理解二分
class Solution {
public:
int getNumberOfK(vector<int>& nums , int k) {
if(nums.empty()) return 0;
//if(nums.size() == 1) return 1;
int l = 0, r = nums.size();
int p1, p2;
//cout << l << ' ' << r << endl;
while(l < r)
{
int mid = l + r >> 1;
if(nums[mid] >= k) r = mid;
else l = mid + 1;
//cout << mid;
}
p1 = l;
//cout << nums[p1] << endl;
l = 0;
r = nums.size();
while(l < r)
{
int mid = l + r >> 1;
if(nums[mid] > k) r = mid;
else l = mid + 1;
//cout << mid;
}
p2 = l;
//cout << nums[p2];
return p2 - p1;
}
};
暴力也可以解,或者别个博主的其他stl的方法,或者用vector容器的查找,找出最左跟最右,下标相减再加一,但是我没去试一下