1、题目描述
统计一个数字在排序数组中出现的次数。
2、代码实现
package com.baozi.offer;/** * 统计一个数字在排序数组中出现的次数。 * * @author BaoZi * @create 2019-07-14-8:52 */public class Offer26 { public static void main(String[] args) { Offer26 offer26 = new Offer26(); int[] array = new int[]{1, 2, 3, 4, 4, 4, 4, 4, 5, 6, 7, 8, 9}; int number = offer26.GetNumberOfK(array, 1); System.out.println(number); } public int GetNumberOfK(int[] array, int k) { if (array.length == 0 || array == null) { return 0; } return get(array, k, 0, array.length - 1); } private int get(int[] array, int k, int begin, int end) { if (begin > end) { return 0; } int mid = (begin + end) >> 1; if (k > array[mid]) { return get(array, k, mid + 1, end); } else if (k < array[mid]) { return get(array, k, begin, mid - 1); } else { return get(array, k, begin, mid - 1) + get(array, k, mid + 1, end) + 1; } }}