c++之数组篇1:对排序数组找出指定数字出现的次数
来源:互联网 发布:亚马逊 云计算 发展史 编辑:程序博客网 时间:2024/06/13 14:14
//本文来自《程序员面试笔试宝典》何昊等人编著#include <iostream>//using namespace std;int BS(int *a,int length,int num,bool isLeft){int left = 0;int right = length - 1;int last = -1;while(left <= right){int mid = (right + left)/2;if(a[mid]<num){left = mid +1;}else if (a[mid]>num){right = mid - 1;}else{last = mid ;if(isLeft)right = mid - 1;else left = mid + 1;}}return last ;}int main(){int count = 0;int arr[] = {0,1,2,3,3,3,3,3,3,3,3,3,3,4,5,6,7,8,13,19};int len = sizeof(arr)/sizeof(arr[0]);int low = BS(arr,len,8,true);int up = BS(arr,len,8,false);if((low!=-1)&&(up!=-1))//原书中当统计的数字为数组中的元素时,没有任何错误;但是当统计的数字在数组中没有出现时,容易出现错误。{ count = up - low +1;printf("%d\n",count);}else //当统计的数字在数组中不存在时printf("%d\n",count);return 0;}参考文献:
《程序员面试笔试宝典》何昊等人编著
0 0
- c++之数组篇1:对排序数组找出指定数字出现的次数
- 在排序数组中,找出给定数字的出现次数
- 在排序数组中,找出给定数字的出现次数
- 在排序数组中,找出给定数字的出现次数
- 在排序数组中,找出给定数字的出现次数
- 在排序数组中,找出给定数字出现的次数
- 在排序数组中,找出给定数字的出现次数
- 在排序数组中,找出给定数字的出现次数
- 在排序数组中找出给定数字出现的次数
- 在排序数组中,找出给定数字的出现次数
- 在排序数组中,找出给定数字的出现次数
- 数字在排序数组中出现的次数(C/C++)
- 找出数组中出现次数最多的数字&找出数组中只出现一次的数字
- 牛客网刷题之数字在排序数组中出现的次数
- 10、在排序数组中,找出给定数字出现的次数
- 微软面试题:在排序数组中,找出给定数字的出现次数
- [微软面试题] 在排序数组中,找出给定数字的出现次数
- 【一些题】剑指offer:找出一个数字在排序数组中出现的次数
- Unity3D 5.4.0 终于可以使用protobuff 3.0.0了
- 开播啦
- 开播啦
- Softmax回归
- 开播啦
- c++之数组篇1:对排序数组找出指定数字出现的次数
- 开播啦
- 爬虫之路——Day4
- JEECG十二个开源项目下载大全
- JSP网页字符集编码
- MongoDB常用操作命令大全
- 如何不让一个慢查询把服务器搞冒烟
- 屏幕录制H.264视频,AAC音频,MP4复用,LibRTMP实时直播
- Retrofit高级用法