您的位置:首页 > Web前端

数字在排序数组中出现的次数

2017-08-20 16:13 141 查看

题目

统计一个数字在排序数组中出现的次数。

思路

利用lower_bound和upper_bound找出下界和上界,然后减一下即可。

也可以自己模拟lower_bound和upper_bound。

参考代码

class Solution {
public:
int GetNumberOfK(vector<int> data, int k) {
int length = data.size();
if (!length || k < data[0] || k > data[length - 1]) return 0;
int lower = lower_bound(data.begin(), data.end(), k) - data.begin();
int upper = upper_bound(data.begin(), data.end(), k) - data.begin();
if (data[lower] != k) return 0;
else return upper - lower;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  剑指offer