统计一个数字在排序数组中出现的次数
来源:互联网 发布:金山软件管家官方 编辑:程序博客网 时间:2024/06/06 23:54
c++ :
//二分查找拓展款 #include<iostream>#include<vector>using namespace std; //获取k第一次出现的下标int getLower(vector<int> data,int k){ int start = 0,end = data.size()-1; int mid = (start + end)/2; while(start <= end){ if(data[mid] < k){ start = mid + 1; }else{ end = mid - 1; } mid = (start + end)/2; } return start; }//获取k最后一次出现的下标int getUpper(vector<int> data,int k){ int start = 0,end = data.size()-1; int mid = (start + end)/2; while(start <= end){ if(data[mid] <= k){ start = mid + 1; }else{ end = mid - 1; } mid = (start + end)/2; } return end;}int GetNumberOfK(vector<int> data ,int k) { int lower = getLower(data,k); int upper = getUpper(data,k); return upper - lower + 1; } void main(){ int a[15]={1,2,3,4,5,6,7,7,7,7,7,7,7,8,9}; vector<int> b(a,a+15); cout<<GetNumberOfK(b ,7)<<endl; while(1);}
java :
//二分查找拓展款 public class Overcount {int findUp(int[] a,int k) { int start = 0; int end = a.length-1; int mid = (start+end)/2; while(start<=end) { if(a[mid] < k) start = mid+1; else end = mid-1; mid = (start+end)/2; } return start; }int findDown(int[] a,int k) { int start = 0; int end = a.length-1; int mid = (start+end)/2; while(start<=end) { if(a[mid] <= k) start = mid+1; else end = mid-1; mid = (start+end)/2; } return end;}int findK(int[] a,int k) { int c = findDown(a,k) - findUp(a,k) + 1; return c;}public static void main(String[] args) { Overcount aim = new Overcount (); int[] a = {1,2,3,4,5,6,7,7,7,7,7,7,7,8,9,10}; System.out.println(aim.findK(a,7)); }}
阅读全文
0 0
- 统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数。
- 统计一个数字在排序数组中出现的次数。
- 统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数。
- 统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数。
- 统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数
- (4)统计一个数字,在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数(二分法)
- 剑指offer-38 统计一个数字在排序数组中出现的次数
- 【c语言】统计一个数字在排序数组中出现的次数
- centos系统中yum安装与卸载软件常见命令
- IDEA 开发多项目依赖
- include c ++ 报错 Could not run build action using Gradle distribution 'https://services....'
- Spring Boot之Hello World
- Qt给窗口或者控件设置透明度
- 统计一个数字在排序数组中出现的次数
- GPS定位精度简析
- Laravel POST、PUT、PATCH 路由的区别
- 更样式进度条代码
- Java服务端 CORS 跨域配置
- 生产者与消费者模型(重要)
- Java:一个帝国的诞生
- unity shader-边缘发光
- C语言小游戏----三子棋