您的位置:首页 > 其它

统计一个数字在排序数组中出现的次数

2020-05-03 19:39 87 查看
//统计一个数字在排序数组中出现的次数
//排序数组{1,2,3,4,5,5,5,6,7,8,10,12}和 数字5

import java.util.Arrays;

public class SumNumArray {
public static int getFirstkey(int[] arr,int key){
int low=0;
int high=arr.length-1;
int mid=0;
while(low<=high){
mid = (low+high)/2;
if (arr[mid]==key){
if(arr[mid-1]!=key||mid==0){
return mid;
}else {
high=mid-1;
}
}else if(arr[mid]>key){
high=mid-1;

}else {
low=mid+1;
}

}
return -1;

}
public static int getLastkey(int[] arr,int key){
int low=0;
int high=arr.length-1;
int mid=0;
while(low<=high){
mid = (low+high)/2;
if (arr[mid]==key){
if(arr[mid+1]!=key||mid==arr.length-1){
return mid;
}else {
low=mid+1;
}
}else if(arr[mid]<key){
low=mid+1;

}else {
high=mid-1;
}

}
return -1;

}

public static int Sum(int []arr,int key){
int count=0;
count =  getLastkey(arr,key)-getFirstkey(arr,key)+1;

return count;
}

public static void main(String[] args){

int []arr = {1,2,3,4,4,4,4,4,4,4,4,4,4,5,5,5,6,7,8,10,12};

System.out.println(Sum(arr,4));

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐