与折半查找是同一个模式,不同的是,在这里不在查找某个确定的值,而是查找确定值所在的上下边界。

def getBounder(data, k, start, end, low_bound = False):if end < start : return -1while start <= end:mid = ( start + end ) >> 1if data[ mid ] > k:end = mid - 1elif data[ mid ] < k:start = mid + 1else:if low_bound == True:if mid == 0 or data[ mid - 1 ] != k:return midelse:end = mid - 1else:if mid == end or data[ mid + 1 ] != k:return midelse:start = mid + 1def getNumberOfk(data, k):if len(data) <= 1: return len(data)low_bound = getBounder( data, k, 0, len( data ) - 1, low_bound = True )up_bound = getBounder( data, k, 0, len( data ) - 1, low_bound = False)return up_bound - low_bound + 1

转载于:https://www.cnblogs.com/mengfanrong/p/3886501.html

【剑指offer】Q38:数字在数组中出现的次数相关推荐

  1. 剑指 Offer 04. 二维数组中的查找

    剑指 Offer 04. 二维数组中的查找 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个高效的函数,输入这样的一个二维数组和一个 ...

  2. 剑指offer:二维数组中的查找

    目录 题目 解题思路 具体代码 题目 题目链接 剑指offer:二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺 ...

  3. 【LeetCode】剑指 Offer 04. 二维数组中的查找

    [LeetCode]剑指 Offer 04. 二维数组中的查找 文章目录 [LeetCode]剑指 Offer 04. 二维数组中的查找 package offer;public class Solu ...

  4. 利用指针数组计算2个3行4列矩阵的和_[剑指 Offer] 04. 二维数组中的查找

    难度:简单 题目链接:剑指 Offer 04. 二维数组中的查找 题目描述: 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数, ...

  5. 剑指offer面试题[29]-数组中出现次数超过一半的数字

    题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ...

  6. 剑指offer面试题[40]-数组中只出现一次的数字

    题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 注意原题目要求空间复杂度为0(1). 位运算的具体思路可以参看剑指offer. class So ...

  7. [剑指Offer]5.二维数组中的查找

    题目 在一个二维数组中,每一行都依照从左到右递增的顺序排序,每一列都依照从上到下递增的顺序排序.请完毕一个函数,输入这种一个二维数组和一个整数.推断数组中是否含有该整数. 思路 [算法系列之三十三]杨 ...

  8. 剑指Offer #01 二维数组中的查找(Java描述)

    题目来源:牛客网-剑指Offer专题 题目地址:二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一 ...

  9. 剑指offer 04.二维数组中的查找 我妹妹都看的懂的方法

    ⭐欢迎来到剑指offer好题精选专栏,一起学习,一起进步⭐ 题目信息: 在一个二维数组array中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请 ...

  10. 剑指offer系列——剑指 Offer 04. 二维数组中的查找(C语言)

    ⭐️前面的话⭐️ 大家好!博主开辟了一个新的专栏--剑指offer,我要开始刷题了!这个专栏会介绍<剑指offer>书上所有的面试编程题.并且会分享一些我的刷题心得.由于博主水平有限,如有 ...

最新文章

  1. Java中的 Switch 是如何支持 String 的?为什么不支持 long?
  2. JAVAWEB项目--模拟考试系统数据库设计与实现(二)
  3. ios 动态监听键盘输入法和高度
  4. 怎么求平均数_EXCEL怎么求企业连续几年业绩的平均增长率
  5. android 自定义switch控件,Android中switch自定义样式
  6. EIP-712 (一个对结构化数据的哈希标准)
  7. 023、JVM实战总结:一步一图:那JVM老年代垃圾回收器CMS工作时,内部又干了些啥?
  8. this全面解析(二)
  9. python数据拟合
  10. JAVAWeb开发之Servlet-18.Servlet共享变量与变量的作用域
  11. 【图像检索】基于matlab GUI Hu不变矩图像检索【含Matlab源码 1508期】
  12. 他们都来全球边缘计算大会了,就差你了!
  13. 502 Bad Gateway错误
  14. 各代iphone尺寸_历代iPhone尺寸对比,你最喜欢哪一代?
  15. 论文阅读《Fast-MVSNet: Sparse-to-Dense Multi-View StereoWith Learned Propagation and Gauss-Newton Refine》
  16. Eclipse各版本代号一览表以及官网上有很多版本的eclipse,下载哪个版本比较合适呢?
  17. python对数据集处理,绘制世界地图
  18. 整理一批 国内外优秀设计团队 设计相关网站
  19. IDC FutureScape:全球智慧城市2019年预测 - 中国启示
  20. layui的轮播图片自适应大小_解决Layui 表格自适应高度的问题

热门文章

  1. 我的RHCA之路随想
  2. javascript写计数器
  3. 【Leetcode】103. 二叉树的锯齿形层次遍历
  4. find 和 findindes
  5. Ubuntu 11.10 安装Adobe Air 和卸载Air中的软件
  6. JQ和Js获取span标签的内容
  7. Ant Design Pro开发后台管理系统(新增页面)
  8. hive遇到FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask错误...
  9. 安卓首页图片轮播效果(淘宝、京东首页广告效果)
  10. odoo8.0+PyCharm4.5开发环境配置