剑指offer——数字在排序数组中出现的次数

时间:2022-03-06 11:04:27

题目描述

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


思路:看到顺序就用二分查找。

public class Solution {
public int GetNumberOfK(int [] array , int k) {
int left = 0;
int right = array.length-1;
return findNum(array, left, right, k);
}

public int findNum(int []array,int l,int r,int k){
if(l<=r){
int mid = (l+r)/2;
if(array[mid] == k){
return findNum(array, l, mid-1, k)+findNum(array, mid+1, r, k)+1;
}else {
return findNum(array, l, mid-1, k)+findNum(array, mid+1, r, k);
}
}
else {
return 0;
}
}
}