首先用二分查找,找到index的位置
然后从该位置,向左向右移动,找到相同的值。
import java.util.*;
public class Solution {
public int GetNumberOfK(int [] array , int k) {
int index = Arrays.binarySearch(array,k);
if(index<0){
return 0;
}
int leftIndex = index-1;
int rightIndex = index+1;
int len=1;
while(leftIndex>=0 && array[leftIndex--]==k){
len++;
}
while(rightIndex<array.length && array[rightIndex++]==k){
len++;
}
return len;
}
}