输入:1,2,2,2,3
输出:3
代码如下:
//
// main.cpp
// 排序数组中找给定数字出现的次数
//
// Created by zjl on 16/8/10.
// Copyright © 2016年 zjl. All rights reserved.
//
#include <iostream>
#include <vector>
using namespace std;
int binarys(vector<int> vec, int val, bool isleft){
int begin = 0, end = vec.size();
int mid = begin;
int last = -1;
while(begin <= end){
mid = begin + (end - begin)/2;
if(vec[mid] < val)
begin = mid + 1;
else if(vec[mid] > val)
end = mid - 1;
else{
last = mid;
if(isleft)
end = mid - 1;
else
begin = mid + 1;
}
}
return last;
}
int main(int argc, const char * argv[]) {
// insert code here...
vector<int>vec={1,2,2,2,3};
int first = binarys(vec, 2, true);
int second = binarys(vec, 2, false);
int res = second - first + 1;
cout<<res<<endl;
return 0;
}