zoukankan      html  css  js  c++  java
  • 剑指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;
            }
        }
    }
    

      

  • 相关阅读:
    PHP数组处理总结
    设计模式之-工厂模式理解
    我的世界观
    编程入门
    2019 新的一年
    placeholder 不支持ie8
    2018年8月20日
    HttpClientUtil
    通用mapper
    small_demo
  • 原文地址:https://www.cnblogs.com/BaoZiY/p/11183103.html
Copyright © 2011-2022 走看看