博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指offer三十七之数字在排序数组中出现的次数
阅读量:6315 次
发布时间:2019-06-22

本文共 1554 字,大约阅读时间需要 5 分钟。

一、题目

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

二、思路

解法一:遍历数组计数

解法二:考虑到时有序数组,所以采用分查找,找到第一个K 和 最后一个K的位置, 二者相减。

三、代码

解法一:

public int GetNumberOfK(int[] array, int k) {        int count = 0;        for (int i = 0; i < array.length; i++) {            if (array[i] == k) {                count++;            }        }        return count;    }
View Code

解法二:

public class Solution2 {        public int GetNumberOfK(int[] array, int k) {                int lower = getLower(array, k);                int upper = getUpper(array, k);                return upper - lower + 1;            }            //获取k第一次出现的下标      public  int getLower(int[] array, int k) {            int start = 0, end = array.length - 1;            int mid = (start + end) / 2;            while (start <= end) {                if (array[mid] < k) {                    start = mid + 1;                } else {                    end = mid - 1;                }                mid = (start + end) / 2;            }            return start;        }        //获取k最后一次出现的下标        int getUpper(int[] array, int k) {            int start = 0, end = array.length - 1;            int mid = (start + end) / 2;            while (start <= end) {                if (array[mid] <= k) {                    start = mid + 1;                } else {                    end = mid - 1;                }                mid = (start + end) / 2;            }            return end;        }    }
View Code

---------------------------------------------

参考链接:

https://www.nowcoder.com/questionTerminal/70610bf967994b22bb1c26f9ae901fa2

转载地址:http://jikaa.baihongyu.com/

你可能感兴趣的文章
冲刺第一周第三天
查看>>
ERP环境检测工具设计与实现 Environment Detection
查看>>
不要在构造中做太多事情,不然有时候会出现有意思的代码~
查看>>
IIS 发布网站遇到的问题
查看>>
NuGet学习笔记(2)——使用图形化界面打包自己的类库
查看>>
xcode中没有autoSizing的设置
查看>>
字符编码
查看>>
企业应用:应用层查询接口设计
查看>>
浅谈Excel开发:十 Excel 开发中与线程相关的若干问题
查看>>
nfd指令的详细说明
查看>>
安装VisualSvn Server时遇到的问题
查看>>
不用Visual Studio,5分钟轻松实现一张报表
查看>>
人脸识别 开放书籍 下载地址
查看>>
Notepad++配置Python开发环境
查看>>
用户组概念 和 挂载 概念
查看>>
如何快速获取ADO连接字符串
查看>>
AspNetPager控件的最基本用法
查看>>
sessionKey
查看>>
高性能Javascript--脚本的无阻塞加载策略
查看>>
Java 编程的动态性, 第4部分: 用 Javassist 进行类转换--转载
查看>>