题目描述
统计一个数字在排序数组中出现的次数。
代码
重点思路:一看到有序,就要想到二分!!!
以及,一定要戒掉一上来就暴力破解的毛病,面试笔试大概率不过关。
import java.util.Arrays;
public class Solution {
public int GetNumberOfK(int [] array , int k) {
//binarySearch方法为二分法查找,所以数组必须是有序的或者是用sort()方法排序之后的。
//返回值是索引
int index=Arrays.binarySearch(array,k);
if(index<0){
return 0;
}
int count=0;
for(int i=index;i<array.length&&array[i]==k;i++){
count++;
}
for(int i=index-1;i>=0&&array[i]==k;i--){
count++;
}
return count;
}
}