题目描述
统计一个数字在升序数组中出现的次数。
public class Solution {public int GetNumberOfK(int [] array , int k) {int count = 0;// 二分查找int l = 0, r = array.length - 1;while(l<=r){int mid = l + (r-l)/2;int curr = array[mid];if(curr==k){count = sum(array,mid,k); // 统计个数break;}else if(k<curr){r = mid - 1;}else{l = mid + 1;}}return count;}public int sum(int[] array, int mid, int k){int count = 0;for(int i=mid;i>=0&&array[i]==k;i--){count++;}for(int i=mid+1;i<array.length&&array[i]==k;i++){count++;}return count;}}
