38 数字在排序数组中出现的次数
来源:互联网 发布:日照间距算法 编辑:程序博客网 时间:2024/06/05 11:18
描述:
实现代码:
package question38;public class NumberOfK {static int GetNumberOfK(int data[],int length,int k){int number=0;if (data.length!=0&&data!=null) {int first=GetFirstK(data,length,k,0,length-1);int last=GetLastK(data,length,k,0,length-1);if (first>-1&&last>-1) {number=last-first+1;}}return number;}private static int GetLastK(int[] data, int length, int k, int start, int end) {// TODO Auto-generated method stubif (start>end) {return -1;}int mid=((end-start)>>1)+start;int midData=data[mid];if (midData==k) {if( (mid<length-1&&data[mid+1]!=k) ||mid==length-1){return mid;}else {start=mid+1;}}else if (mid<k) {start=mid+1;}else {end=mid-1;}return GetLastK(data, length, k, start, end);}private static int GetFirstK(int[] data, int length, int k, int start, int end) {// TODO Auto-generated method stubif (start>end) {return -1;}int mid=((end-start)>>1)+start;int midData=data[mid];if (midData==k) {if( (mid>0&&data[mid-1]!=k )|| mid==0 ){return mid;}else {end=mid-1;}}else if (midData>k) {end=mid-1;}else {start=mid+1;}return GetFirstK(data, length, k, start, end);}public static void main(String[] args) {// TODO Auto-generated method stubint array[]={1,3,3,3,3,4,5};int array2[]={1,2,3,3,3,3,4,5};int res=GetNumberOfK(array, array.length,6);int res2=GetNumberOfK(array, array.length,3);System.out.println(res);System.out.println(res2);}}
测试结果:
0 0
- 38 数字在排序数组中出现的次数
- 38-数字在排序数组中出现的次数
- 【数组8】数字在排序数组中出现的次数
- 【数组4】数字在排序数组中出现的次数
- 数组9:数字在排序数组中出现的次数
- 数字在排序数组中出现的次数(数组)
- 在排序数组中,找出给定数字的出现次数
- 在排序数组中,找出给定数字的出现次数
- 在排序数组中,找出给定数字的出现次数
- 统计一个数字在排序数组中出现的次数
- 数字在排序数组中出现的次数
- 数字在排序数组中出现的次数
- 在排序数组中,找出给定数字的出现次数
- 在排序数组中,找出给定数字出现的次数
- 数字在排序数组中出现的次数
- 数字在排序数组中出现的次数
- 数字在排序数组中出现的次数
- 数字在排序数组中出现的次数
- 算法 动态连通性--如何设计和分析算法
- unity3d 第八天
- 剑指offer---- 圆圈中剩下的数----java实现
- java String 中 intern方法的概念
- 《head first html/css》之html5部分走起
- 38 数字在排序数组中出现的次数
- intent启动分享图片
- 瀑布流
- setenv()
- hdu_1007_Quoit Design(最近点对)
- solr 之Field、CopyField、DynamicField
- oracle 设置登录不区分大小写
- iOS开发从入门到精通--开关按钮UISwitch控件
- Eclipse 重新定位svn资源库报错