NO37、 统计一个数字在排序数组中出现的次数(还可以)

37、 统计一个数字在排序数组中出现的次数 还可以

统计一个数字在升序数组中出现的次数。
示例1
输入

[1,2,3,3,3,3,4,5],3

返回值

4
1、STL中取巧的一种写法,直接调equal_range() 方法
    int GetNumberOfK(vector<int> data ,int k) {

        auto pos = equal_range(data.begin(),data.end(),k);
        return pos.second - pos.first;

    }
2、二分法,找到第一次出现的位置和最后一次出现的位置,还是记这种二分法模板吧

low<=high low = mid+1,high = mid-1;

运行时间:2ms 占用内存:504k

int GetNumberOfK(vector<int> data, int k) {

    int low = 0, high = data.size() - 1;
    if (high == -1) return 0;//data为空


    wh

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

带你刷完67道剑指offer 文章被收录于专栏

- 本专栏汇集了67道剑指offer的一些精妙解法,不少题有5-6种解法之多,有些题目二刷三刷的解法也不一样。 - 本专栏帮助我拿到6个互联网大厂offer,最终圆梦字节跳动公司。

全部评论

相关推荐

09-18 20:41
百度_Java
要个offer怎么这...:哈哈哈哈哈哈,我也拿了0x10000000个offer,秋招温啦啦啦,好开心
我的秋招日记
点赞 评论 收藏
分享
面了100年面试不知...:头像换成柯南再试试
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务