【剑指offer】面试题 53:数字在排序数组中出现的次数
来源:互联网 发布:中企动力源码 编辑:程序博客网 时间:2024/06/03 07:30
题目描述
统计一个数字在排序数组中出现的次数。
时间限制:1秒 空间限制:32768K 热度指数:71223
算法
假设我们要知道这个数字的次数,那么我们直接搜索 k+0.5 和 k-0.5的位置,直接相减就可以了。
参考代码
class Solution {public: int GetNumberOfK(vector<int> data ,int k) { return biSearch(data, k+0.5) - biSearch(data, k-0.5); } private: int biSearch(const vector<int> &data, double num) { int s = 0, e = data.size() - 1; while (s <= e) { int mid = (e - s) / 2 + s; if (data[mid] < num) s = mid + 1; else if (data[mid] > num) e = mid - 1; } return s; }};
下面这个是直接一行代码实现的,用到了count()函数,我觉得这个如果面试,肯定不会让你过的。
参考代码
class Solution {public: int GetNumberOfK(vector<int> data ,int k) { return count(data.begin(), data.end(), k); }};
阅读全文
0 0
- 【剑指offer】面试题53(1):数字在排序数组中出现的次数
- 【剑指offer】面试题 53:数字在排序数组中出现的次数
- [剑指offer][面试题38]数字在排序数组中出现的次数
- 剑指Offer:面试题38 数字在排序数组中出现的次数
- 剑指offer面试题38:数字在排序数组中出现的次数
- 剑指offer 面试题38—数字在排序数组中出现的次数
- 《剑指Offer》学习笔记--面试题38:数字在排序数组中出现的次数
- 【剑指Offer学习】【面试题38:数字在排序数组中出现的次数】
- 剑指Offer面试题38(Java版):数字在排序数组中出现的次数
- 《剑指Offer》面试题:统计一个数字在排序数组中出现的次数
- 剑指offer-面试题38:数字在排序数组中出现的次数
- 剑指offer之面试题38数字在排序数组中出现的次数
- 剑指offer面试题38:数字在已排序数组中出现的次数
- 剑指offer面试题38:数字在排序数组中出现的次数
- 剑指Offer----面试题38:数字在排序数组中出现的次数
- 剑指Offer面试题38:数字在排序数组中出现的次数 Java实现
- 剑指offer--面试题38:数字在排序数组中出现的次数
- 剑指Offer面试题38(Java版):数字在排序数组中出现的次数
- java网络爬虫
- AngularJS自定义指令controller和link传参
- 容斥原理
- C#与MySQL直接连接
- 素数筛法
- 【剑指offer】面试题 53:数字在排序数组中出现的次数
- 【学习笔记】深入理解超时调用(setTimeout)和间歇调用(setInterval)
- Restful在Eclipse调试环境中的坑SpringMVC 和 Jersey
- 多线程
- 【安卓学习笔记】JAVA基础Lesson5-关键字this
- ArcEngine GP工具——Summary Statistics(汇总统计)功能的实现
- 虚拟机 --- 环境 linux Centos mysql
- 快速排序
- u-boot学习笔记-1、目录结构