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

Posted baoziy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指Offer——数字在排序数组中出现的次数相关的知识,希望对你有一定的参考价值。

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;
        
    

  

以上是关于剑指Offer——数字在排序数组中出现的次数的主要内容,如果未能解决你的问题,请参考以下文章

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

剑指Offer:数组中出现次数超过一半的数字39

剑指Offer37:数字在排序数组中出现的次数(Java)

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

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

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