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

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

public class GetNumberOfK {
	public int GetNumberOfK(int[] array, int k) {
		return binarySearch(array, k + 0.5) - binarySearch(array, k - 0.5);
	}

	public int binarySearch(int[] arr, double k) {
		int start = 0;
		int end = arr.length - 1;
		while (start <= end) {
			int mid = (start + end) >> 1;
			if (arr[mid] == k) {
				return start;
			} else if (arr[mid] < k) {
				start = mid + 1;
			} else {
				end = mid - 1;
			}
		}
		return start;
	}
}

你可能感兴趣的:(剑指offer)