博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
37.数字在排序数组中出现的次数
阅读量:5310 次
发布时间:2019-06-14

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

题目描述

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

题目解答

public class Solution {    public int GetNumberOfK(int [] array , int k) {        int length=array.length;        if(length==0){            return 0;        }        int firstK=getFirstK(array,k,0,length-1);        int lastK=getLastK(array,k,0,length-1);        if(firstK!=-1 && lastK!=-1){            return lastK-firstK+1;        }        return 0;    }        //递归写法    private int getFirstK(int[] array,int k,int start,int end){        if(start>end){            return -1;        }        int mid=(start+end)>>1;        if(array[mid]>k){ //k在左边            return getFirstK(array,k,start,mid-1);        }else if(array[mid]
=0 && array[mid-1]==k){ //mid的前一个为k,k在左边 return getFirstK(array,k,start,mid-1); }else{ //mid前一个不为k,mid为k,k恰好是第一个mid return mid; } } //循环写法 private int getLastK(int[] array,int k,int start,int end){ int length=array.length; int mid=(start+end)>>1; while(start<=end){ if(array[mid]>k){
//k在左边 end=mid-1; }else if(array[mid]
>1; } return -1; }}

 

转载于:https://www.cnblogs.com/chanaichao/p/10230159.html

你可能感兴趣的文章
抽象类与接口的区别
查看>>
[CentOS7] vncviewer与windows之间的复制粘贴
查看>>
切割大文件与合并文件
查看>>
面试问题
查看>>
Android中的Handler
查看>>
简单小练习_自动拉微信群
查看>>
PHP 常量dirname(__file__)
查看>>
cookies
查看>>
commons-fileupload-1.2.1.jar 插件上传与下载
查看>>
P1439 【模板】最长公共子序列
查看>>
[CSS]图片与文字对齐问题
查看>>
NYOJ-20 吝啬的国度
查看>>
Elasticsearch & Kibana with Shield
查看>>
Hibernate5 四种数据源配置
查看>>
SQL-记录表历史
查看>>
Magicodes.Admin.Core开源框架总体介绍
查看>>
python面向对象基础
查看>>
vim编辑器的基本用法
查看>>
利用文本编辑器输入Hello.java,并在JDK环境下编译和运行。请将程序编译、运行的结果...
查看>>
HDU3870- intervals(差分约束)
查看>>