剑指offer38题,本地编译可以通过,牛客网不通过,求解
原题是这样的
我的代码是这样的
package Test31_66;
public class Test38 {
/**
* 统计一个数字在排序数组中出现的次数
* @param array
* @param k
* @return
*/
public static int GetNumberOfK(int [] array , int k) {
int index=doubleFind(array,k,0,array.length-1);
int index2=index;
int count=0;
while(index<=array.length-1&&array[index]==k) {
count++;
index++;
}
while(index2>=0&&array[index2]==k) {
count++;
index2--;
}
return count-1;
}
/**
* 二分查找k的位置
* @param array
* @param k
* @param s
* @param e
* @return
*/
private static int doubleFind(int[] array, int k,int s,int e) {
int mid=(s+e)/2;
if(array[mid]==k) {
return mid;
}
if(array[mid]<k) {
return doubleFind(array, k, mid+1, e);
}else if(array[mid]>k){
return doubleFind(array, k, s, mid-1);
}
return -1;
}
public static void main(String[] args) {
int a[]= {1,2,3,4,5,6,7,8,8,8,8,8,9};
//System.out.println(doubleFind(a, 2, 0, 5));
System.out.println(GetNumberOfK(a, 8));
}
}
在eclipse上可以通过
但是在牛客网竟然编译错误,如下图
所以是哪里出现错误了呢?有没有大佬帮忙解答一下