这种方法没用迭代,而是使用了循环的方式

class Solution {
public:int GetNumberOfK(vector<int> data ,int k) {if(data.empty())return 0;int First = getFirstofK(data,k);int Last = getLastofK(data,k);if(First == -1 || Last == -1)return 0;elsereturn Last - First + 1;}int getFirstofK(vector<int> data,int k){int length = data.size();int begin = 0;int end = length - 1;while(begin <= end){int mid = (begin + end)/2;if(data[mid] == k){if(data[mid-1] != k)return mid;elseend = mid - 1;}else if(data[mid] < k)begin = mid + 1;elseend = mid - 1; }return -1;}int getLastofK(vector<int> data,int k){int length = data.size();int begin = 0;int end = length - 1;while(begin <= end){int mid = (begin + end)/2;if(data[mid] == k){if(data[mid+1] != k)return mid;elsebegin = mid + 1;}else if(data[mid] < k)begin = mid + 1;elseend = mid - 1; }return -1;}
};

转载于:https://www.cnblogs.com/ymjyqsx/p/7171715.html

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

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

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

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

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

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

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

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

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

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

    数字在排序数组中出现的次数: 最简单粗暴的方法是O(n^2) 可能的解法可以采用二分,首先根据二分找到给定数字在数组中的位置,然后再左右二分,找到边界(第一个和最后一个),左右边界的差值就是出现次数 ...

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

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

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

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

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

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

  9. 剑指Offer值数字在排序数组中出现的次数

    题目描述 统计一个数字在排序数组中出现的次数. 解题思路 看到排序立马想到二分,利用STL的upper_bound与lower_bound处理即可.复杂度是O(log⁡N)O(\log N)O(log ...

最新文章

  1. 先进的NumPy数据科学
  2. python登录豆瓣_python登录豆瓣,发帖
  3. installshield 脚本 在卸载过程执行_Linux下运行Jmeter脚本
  4. android升级异常,升级AndroidX遇到的问题
  5. css3 Gradient背景
  6. 仓库货位卡标识牌_仓库应如何规划?
  7. 用 keepalived 搭建高可用集群之 IP Failover
  8. 读《DOOM启示录》随想
  9. Java 版学生成绩管理系统,附源码
  10. Hadoop面试题(一)
  11. html 给word插入页眉和页脚,如何在Word插入页眉和页脚
  12. 软件公司是如何招聘人才的?
  13. 《自控力》——凯利.麦格尼格尔
  14. 浏览器网页视频怎么快速下载到本地?
  15. FPGA学习笔记(八)同步/异步信号的打拍分析处理及亚稳态分析
  16. Python学习笔记第二十九天(N维数组(ndarray))
  17. 2019.01.17【BZOJ4399】 魔法少女LJJ(FHQ_treap)(ODT)
  18. 3D激光SLAM:LeGO-LOAM---两步优化的帧间里程计及代码分析
  19. android cpu负载 工具,【专家专栏】Android性能测试之CPU
  20. APP混合应用之web页面处理

热门文章

  1. php file_get_contents()请求某个链接
  2. 误区30日谈21-24
  3. 成功加入微软GDI计划
  4. java中错误的源文件_如果我的Java源文件中存在语法错误,为什么Eclipse会生成.class文件?...
  5. 怎么让网页中的文字两边留出空白_横线、方格、点阵、空白本,谁才是笔记本中的C位?...
  6. vue 文字转语音mp3_阿里云tts 将文字转换成语音
  7. python中redirect_详解如何用django实现redirect的几种方法总结
  8. java 圆形碰撞箱_你会使用“碰撞箱”吗?5种你不知道的玩法 甚至能定位死亡方位...
  9. android逆透视变换坐标,android – 如何使用OpenGL模拟OpenCV的warpPerspective功能(透视变换)...
  10. 小米台灯底座接口很松_小米黑科技,AirPods和小米10 Pro伴侣,ZMI无线充蓝牙音箱体验...