[剑指Offer] 37.数字在排序数组中出现的次数
题目描述
统计一个数字在排序数组中出现的次数。
【思路】因为是排序数组,所以可以用二分法搜索到要查找的值在数组中的一个位置,接着向两侧扫描,遇到不等的就停止。
 class Solution {
 public:
     int getIndexbyDivision(vector<int> data,int k){
         int left = ,right = data.size() - ;
         int middle = left + (right - left)/;
         while(left <= right){
             if(k > data[middle])
                 left = middle + ;
             else if(k < data[middle])
                 right = middle - ;
             else
                 return middle;
             middle = left + (right - left)/;
         }
         return -;
     }
     int GetNumberOfK(vector<int> data ,int k) {
         int index = getIndexbyDivision(data,k);
         if(index == -) return ;
         int num = ;
         for(int i = index - ;i >=  && data[i] == k;i --)    num++;
         for(int j = index + ;j < data.size() && data[j] == k;j ++)    num++;
         return num;
     }
 };
[剑指Offer] 37.数字在排序数组中出现的次数的更多相关文章
- 剑指Offer 37. 数字在排序数组中出现的次数 (数组)
		
题目描述 统计一个数字在排序数组中出现的次数. 题目地址 https://www.nowcoder.com/practice/70610bf967994b22bb1c26f9ae901fa2?tpId ...
 - 【剑指Offer】数字在排序数组中出现的次数 解题报告(Python)
		
[剑指Offer]数字在排序数组中出现的次数 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-interv ...
 - 【Java】 剑指offer(53-1) 数字在排序数组中出现的次数
		
正文 本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 统计一个数字在排序数组中出现的次数.例如输入排序数组{1, ...
 - Go语言实现:【剑指offer】数字在排序数组中出现的次数
		
该题目来源于牛客网<剑指offer>专题. 统计一个数字在排序数组中出现的次数. 看到排序数组,要想到用二分查找. 先找到最前面的数字k,再找到最后面的数字k,通过下标求出次数. Go语言 ...
 - 【剑指offer】数字在排序数组中出现的次数
		
2013-09-02 16:28:35 找出数字在排序数组中出现的次数. 注意几点: 一开始试图用size_t类型表示数组的下标begin.end,到那时这样做在end = 0时,end - 1是si ...
 - 剑指offer: 38 数字在排序数组中出现的次数
		
题目描述 统计一个数字在排序数组中出现的次数.例如输入排序数组{1,2,3,3,3,3,4,5} 和数字3,输出4. 思路如下 1. 预估时间复杂度,最复杂情况是,顺序扫描,统计K出现的次数,时间复杂 ...
 - 《剑指offer》-数字在排序数组中出现的次数
		
统计一个数字在排序数组中出现的次数. 首先吐槽下出题人的用词,啥叫排序数组?"排序"是个动词好么,"有序"作为一个形容词表示状态,修饰"数组" ...
 - 剑指offer:数字在排序数组中出现的次数
		
题目描述: 统计一个数字在排序数组中出现的次数. 思路分析: 1. 直观思路是直接遍历一遍,统计.复杂度也只要O(n). 2. 显然这道题要考察的内容不这么简单,实际上考虑二分的思想来完成.分别二分查 ...
 - 【剑指offer】数字在排序数组中出现的次数,C++实现
		
原创博文,转载请注明出处! # 题目 # 思路 利用二分查找法,查找元素k在排序数组中第一次出现的位置m及最后一次出现的位置n,m-n+1即为元素k再排序数组中出现的次数. 二分查找法在数 ...
 
随机推荐
- Modify the apache2 default document and home page on ubuntu (ubuntu下修改apache2默认目录和默认主页)
			
Change the apache2 default website directory As we know, The apache2 default directory at /var/www/, ...
 - 操作BOM
			
BOM的作用是将相关的元素组织包装起来,提供给程序设计人员使用,从而降低开发人员的劳动量,提高设计Web页面的能力. 整个window对象是整个BOM的核心. 通过BOM可实现的功能: 弹出新的浏览器 ...
 - Docker与FastDFS的安装命令及使用
			
Docker特点 1)上手快 用户只需要几分钟,就可以把自己的程序“Docker 化”.Docker 依赖于“写时复制” (copy-on-write)模型,使修改应用程序也非常迅速,可以说达到“随心 ...
 - php+高德地图webapi  高德jsapi 实现 当前位置与目标位置距离 并按照距离排序(坐标逆转换)
			
<script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak='自己 ...
 - wamp环境下安装imagick扩展
			
先上图,如下是安装成功后的phpinfo()界面: 安装步骤: 1.先确定安装版本,比如我的的php : php7.0.12 x86 ts 那么就需要三方版本 要一致:imagick软件本身( 如x ...
 - Windows 10 登录界面的背景图片地址
			
C:\Users\******\appdata\Local\Packages\Microsoft.Windows.ContentDeliveryManager_********\LocalState\ ...
 - 用状态机表示SFC中的并行分支
			
过去一直认为,状态机表示SFC会不会是任务复杂化,这次简单实验了一下,感觉还可以.请看下面的控制. 在SFC中,A和B是一对并行分支,汇合后转移到C分支中,怎么了用状态机表示呢?这里我们在状态机里分别 ...
 - SVM中的间隔最大化
			
参考链接: 1.https://blog.csdn.net/TaiJi1985/article/details/75087742 2.李航<统计学习方法>7.1节 线性可分支持向量机与硬间 ...
 - 关于mysql连接时候出现"error 2003: can't connect to mysql server on 'localhost'(10061)问题的解决
			
天,在使用navicat Premium 连接数据库时,出现了一个弹出窗口显示: "error 2003: can't connect to mysql server on 'localho ...
 - CSS3新特性回顾
			
CSS3 介绍 开始实例 新特征简介 强大的CSS选择器 抛弃图片的视觉效果 盒模型变化(多列布局和弹性盒模型) 阴影效果 Web字体和web Font 图标 CSS33过渡与动画交互效果 媒体查询 ...