题目描述

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

思路:看到排序数组,首先考虑二分查找。我们找到数字在排序数组中最先出现和最后出现的下标,即得到次数。

 1 class Solution {
 2 public:
 3     int GetNumberOfK(vector<int> data ,int k) {
 4         int len = data.size();
 5         int left = 0, right = len - 1, l, r;
 6         int mid;
 7         // 先找最左边的index,如果data[mid] == k,我们也将right = mid - 1,
 8         // 因为我们只要最左边的index,下面找最右边的index也是同理。
 9         while (left <= right) {
10             mid = (right - left) / 2 + left;
11             if (data[mid] >= k) {
12                 right = mid - 1;
13             } else {
14                 left = mid + 1;
15             }
16         }
17         l = left;
18         right = len - 1;
19         while (left <= right) {
20             mid = (right - left) / 2 + left;
21             if (data[mid] <= k) {
22                 left = mid + 1;
23             } else {
24                 right = mid - 1;
25             }
26         }
27         r = right;
28         return (r - l + 1);
29     }
30 };

转载于:https://www.cnblogs.com/qinduanyinghua/p/10643351.html

剑指offer 数字在排序数组中出现的次数相关推荐

  1. 剑指offer——数字在排序数组中出现的次数

    题目:统计一个数字在排序数组中出现的次数. 方法一:蛮力法 public class Solution {public int GetNumberOfK(int [] array , int k) { ...

  2. 剑指offer38 数字在排序数组中出现的次数

    这种方法没用迭代,而是使用了循环的方式 class Solution { public:int GetNumberOfK(vector<int> data ,int k) {if(data ...

  3. 剑指 Offer II 070. 排序数组中只出现一次的数字

    找出那只单身狗: 正文开始@Assassin 目录: 找出那只单身狗: 1. 题目描述: 2. 思路: 2.1 异或的基本概念: 2.1.1 符号表示: 2.1.2 运算规则: 2.1.3 异或的性质 ...

  4. 剑指 Offer II 006. 排序数组中两个数字之和

    由于题目中数组已经排好序,所以可以用双指针 双指针: i=0,j=nums.size( )-1 当 i<j 时循环,当目标小于target时i++,当目标大于target时,j-- 当目标小于t ...

  5. 【剑指offer】数字在排序数组中出现的次数

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/27364557 题目描写叙述: 统计一个数字在排序数组中出现的次数. 输入: 每一个測试案例 ...

  6. 剑指offer——面试题38:数字在排序数组中出现的次数

    剑指offer--面试题38:数字在排序数组中出现的次数 20180906整理 Solution1: [注意]先利用二分查找扎到一个值然后再顺序遍历的做法时间复杂度也是O(n)O(n)O(n),代码也 ...

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

    题目描述 统计一个数字在排序数组中出现的次数. 解题思路 暴力求解,没用到排序的已知条件. class Solution { public:int GetNumberOfK(vector<int ...

  8. 剑指Offer(Java版):数字在排序数组中出现的次数

    2019独角兽企业重金招聘Python工程师标准>>> 题目:统计一个数字在排序数组中出现的次数.例如输入排序数组为 {1,2,3,3,,3,3,4,5}和数字3,由于3在这个数组中 ...

  9. 《剑指offer》-- 调整数组顺序使奇数位于偶数前面、顺时针打印矩阵、数字在排序数组中出现的次数

    一.调整数组顺序使奇数位于偶数前面: 1.题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之 ...

  10. 《剑指offer》数字在排序数组中出现的次数

    题目:统计一个数字在排序数组中出现的次数. 解析:不要怀疑你的眼睛,也不用怀疑这题目难度,直接干! public class Solution {public int GetNumberOfK(int ...

最新文章

  1. 微信小程序wxparse内容页显示不出来不能正确解析html代码
  2. js获取当前日期,包括星期几
  3. servlet指定时间到现在过了多久_就喝一瓶啤酒,多久能开车?交警:过了这个时间,100%没问题...
  4. matlab Normally distributed random numbers in two columns
  5. Lua 脚本内部执行 Redis 命令
  6. java 文件比较_java 四种写文件比较
  7. 关于优酷开放SDK中setOnRealVideoStartListener
  8. 图形大小_PS图形复制——等距复制、旋转复制、大小变换复制
  9. 为什么dos下的com文件都要org 0100h呢?为什么系统启动时要org 07c00h呢
  10. winform 只允许显示一个子窗体
  11. 估算CSDN约有340万用户开通了博客
  12. bootstrap-table初始数据,页面一直显示“正在努力加载数据中,请稍后“
  13. Unity3D游戏开发之使用disunity提取Unity3D游戏资源
  14. block的名词形式_block是什么意思_block在线翻译_英语_读音_用法_例句_海词词典
  15. 开源的文件服务器有哪些,开源文件服务器
  16. 中国猫道系统市场趋势报告、技术动态创新及市场预测
  17. SAP 财务-统驭科目
  18. 实践课题选题管理(C语言)(选课系统)
  19. 域名升级访问中拿笔记好_好记性也应做笔记,安利一款比onenote更好用的云笔记工具...
  20. 93复原IP地址(递归回溯法)

热门文章

  1. ios开发之iOS 11 SDK 的新特性
  2. Zbrush 2022 for Mac(数字雕刻和绘画程序)
  3. 如何在 Mac、iphone 中快速清除已完成的提醒?
  4. (五)ThinkPHP实践之Session驱动-TTLSA
  5. ubuntu 的重要一课
  6. 项目质量管理在民航业中的应用
  7. 直接安装的Qt 5如何调试到源码中
  8. 正则表达式替换字符串
  9. Nodejs实现一个http反向代理
  10. SqlServer数据库正在还原的解决办法