数字再排序数组中出现的次数
来源:互联网 发布:hd网络是什么意思啊 编辑:程序博客网 时间:2024/06/06 03:36
1、来源数字在排序数组中出现的次数
统计一个数字在排序数组中出现的次数。
2、二分查找,找出第一次出现k的位置first和最后一次出现k的位置last
3、代码:
public int GetNumberOfK(int [] array , int k) { int first, last; first = getFirstPos(array,k);//获得k第一次出现的位置 if(first == -1) return 0; last = getLastPos(array,k);//获得k最后一次出现的位置 //System.out.println(first+" "+last); return last - first + 1; } private int getFirstPos(int[] array, int k) { int len = array.length; int start = 0, end = len - 1; int mid = ( start + end ) / 2; boolean isExistEqual = false; while(start <= end){ if(array[mid] > k){ end = mid - 1; }else if(array[mid] < k){ start = mid + 1; }else if(array[mid] == k){ end = mid - 1; isExistEqual = true; } mid = ( start + end ) / 2; } if(!isExistEqual) return -1; return start; } private int getLastPos(int[] array, int k) { int len = array.length; int start = 0, end = len - 1; int mid = ( start + end ) / 2; boolean isExistEqual = false; while(start <= end){ if(array[mid] > k){ end = mid - 1; }else if(array[mid] < k){ start = mid + 1; }else{ start = mid + 1; isExistEqual = true; } mid = ( start + end ) / 2; } if(!isExistEqual){ return -1; } return end; }
阅读全文
0 0
- 数字再排序数组中出现的次数
- 【数组8】数字在排序数组中出现的次数
- 【数组4】数字在排序数组中出现的次数
- 数组9:数字在排序数组中出现的次数
- 数字在排序数组中出现的次数(数组)
- 在排序数组中,找出给定数字的出现次数
- 在排序数组中,找出给定数字的出现次数
- 在排序数组中,找出给定数字的出现次数
- 统计一个数字在排序数组中出现的次数
- 数字在排序数组中出现的次数
- 数字在排序数组中出现的次数
- 在排序数组中,找出给定数字的出现次数
- 在排序数组中,找出给定数字出现的次数
- 数字在排序数组中出现的次数
- 数字在排序数组中出现的次数
- 数字在排序数组中出现的次数
- 数字在排序数组中出现的次数
- 查找排序数组中数字出现的次数
- poj 2763 Housewife Wind
- Win10 一些常用快捷键
- leetcode-Can Place Flowers
- NGUI2D3D屏幕适应
- hbase 将查询结果写入文件
- 数字再排序数组中出现的次数
- lua基础知识整理
- 计算机启动相关术语、问题
- POJ 3069 Saruman's Army
- 第三周项目三C/C++求集合并集
- 题4
- unity3d ngui 适配性价比最高的方案
- [iOS]Unknown class XXX in Interface Builder file.
- Python 的“保暖裤”