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

2023-05-16

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

解题思路:

遍历查找不是本题的最优解,既然给出的是有序数组,所以我们只需要找到目标的左侧和右侧的索引即可。所以我们可以找到本数组当中key+0.5和key-0.5的位置即可得到次数,二分查找将减少时间复杂度。

代码

# -*- coding:utf-8 -*-
class Solution:
    def GetIdx(self, data, k):
        s = 0
        e = len(data) - 1
        while (s <= e):
            mid = int((e - s) / 2) + s
            print(mid)
            if data[mid] < k:
                s = mid + 1
            elif data[mid] > k:
                e = mid - 1
        return s

    def GetNumberOfK(self, data, k):
        # write code here
        return self.GetIdx(data, k + 0.5) - self.GetIdx(data, k - 0.5)

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【剑指offer】数字在排序数组中出现的次数 的相关文章

随机推荐

  • abaqus开发问题

    abaqus使用子程序vs2013和ivf2013一直关联不上 xff0c 怎么破
  • java10进制数和16进制数字相互转换

    1 将java10进制数字转换为16进制 String hex 61 Integer toHexString numb 2 将java 16进制字符转换为10进制数 BigInteger bigint 61 new BigInteger h
  • linux下fcitx部分窗口无效的问题解决

    问题描述 linux下部分窗口切换输入法正常 xff0c 部分窗口切换输入法没有效果 xff0c 无法输入中文 xff0c 使用的是fcitx 问题原因 fcitx未安装好 xff0c 需要再安装fcitx gtk2或者fcitx gtk3
  • 【opencv 学习】使用tesseract-ocr机芯数字识别

    今天学习 tesseract ocr开源库的使用 xff0c 这是个开源的能够识别多语言文字的库 下面是在Windows上安装的步骤 1 xff1a 下载软件 xff0c 选择最新的版本安装 https github com UB Mann
  • 在idea中使用findbugs工具

    目录 一 首先需要在idea内部搜索findbugs工具 xff0c 进行安装 二 自己下载findbugs xff0c 安装到Idea中 xff0c 进行使用 三 find sec bugs安全规则组件的应用 xff0c 在二的步骤中提供
  • linux实现Tomcat的定时重启

    还是吃了能力的亏 xff0c 因为很少写shell脚本 xff0c 导致一个很简单的问题困扰 1 shell脚本 如果不会写的 xff0c 百度下来的脚本 xff0c 单独执行没有任何问题 xff0c 但是一旦通过定时任务去执行的话 xff
  • rt-thread tcp服务器 多客户端连接

    1 tcp 服务端测试 我们从rt thread 源码中的example 文件夹可以找到一个名为tcpserver c 的文件 我们按照官网说明 添加此文件拖进项目中去 即可实现tcpserver 测试功能 参考链接 stm32f429网络
  • C++后端开发——POSIX网络API解析

    网络中进程之间如何通信 xff1f 本地的进程间通信 xff08 IPC xff09 有很多种方式 xff0c 但可以总结为下面4类 xff1a 消息传递 xff08 管道 FIFO 消息队列 xff09 同步 xff08 互斥量 条件变量
  • win11右键菜单怎么修改 Windows11修改右键菜单为win10风格的步骤方法

    有很多朋友升级到win11系统之后不是特别喜欢右键菜单 xff0c 因为经常需要多点击一次显示更多选项 xff0c 很不舒服 大家就想知道如何修改回原来win10的右键菜单 xff0c 其实还是有方法的 xff0c 除了使用软件以外 xff
  • win11WiFi无法连接网络怎么办 Windows11WiFi无法连接网络的解决方法

    最近不是win11系统出来了吗 很多小伙伴在体验win11系统的过程种 经常会遇到各种各样的问题 比如win11wifi无法连接网络 那么win11wifi无法连接网络怎么办呢 下面小编就给大家带来win11wifi无法连接网络的解决方法
  • Win11更改声音输出设备的方法

    如果您的计算机连接了多个输出设备 xff0c 为了方便切换 xff0c 有什么简单便捷的方法吗 xff1f 下面小编就给大家带来4种不同的更换方法 xff0c 希望对您有所帮助 更多系统教程尽在小白系统重装官网 单击由 Wi Fi 图标 扬
  • Win11热点连接成功但没网?Win11移动热点和网络冲突的解决方法

    Win11热点连接成功但没网怎么办 xff1f 出现这样的情况多半是更新了系统补丁KB5014697后 xff0c 其具体表现为打开移动热点 xff0c 使移动设备连接到计算机开启的移动热点后 xff0c 计算机的浏览器无法打开网页 xff
  • Win11暂停更新点不了怎么办?Win11暂停更新是灰色的如何解决?

    Win11暂停更新点不了怎么办 xff1f Win11暂停更新是灰色的如何解决 xff1f 有很多朋友发现了这个情况 xff0c 原先自己设置了暂停更新 xff0c 但是等到突然某一天系统就会开始更新 xff0c 这时用户想要再点暂停更新就
  • Win11玩绝地求生(PUBG)崩溃怎么办?Win11玩绝地求生崩溃解决方法

    绝地求生 xff08 PUBG xff09 是一款非常有趣射击类游戏 xff0c 哪怕升级Win11系统也有很多小伙伴都在体验 xff0c 但有不少小伙伴在Win11系统更新完之后发现经常会出现崩溃或者闪退的情况 xff0c 很多小伙伴不清
  • 重装系统后没声音如何解决

    重装系统之后不少用户总是遇到各种各样的问题 xff0c 例如说电脑重装系统后没声音 xff0c 却不知道应该怎么解决 今天 xff0c 我们就来看看重装系统后没有声音怎么办的解决方法 工具 原料 xff1a 系统版本 xff1a windo
  • OpenStack之Region、Available Zone、Host Aggregates

    OpenStack之Region Available Zone Host Aggregates 亚马逊AWS是公共云计算的先驱 xff0c 一些云计算中重要的产品设计和基础概念可以说都是亚马逊引入的 这其中有两个非常重要的概念 xff1a
  • idea安装copilot

    目录 1 申请资格 2 安装插件 3 使用Copilot 现在已经要收费了 xff0c 申请资格变成购买了 10美金一个月 不过如果是学生的话可以进行学生认证 xff0c 使用学生认证来免费使用 非学生的话如果想要使用可以搞个github学
  • 【Leetcode】342. Power of Four(二进制计算)(判定是否为4的幂次方)

    Given an integer signed 32 bits write a function to check whether it is a power of 4 Example 1 Input 16 Output true Exam
  • signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xc

    span class hljs number 02 span span class hljs subst span span class hljs number 02 span span class hljs number 00 span
  • 【剑指offer】数字在排序数组中出现的次数

    统计一个数字在排序数组中出现的次数 解题思路 xff1a 遍历查找不是本题的最优解 xff0c 既然给出的是有序数组 xff0c 所以我们只需要找到目标的左侧和右侧的索引即可 所以我们可以找到本数组当中key 43 0 5和key 0 5的