0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

剑指Offer(37):数字在排序数组中出现的次数

电子设计 来源:电子设计 作者:电子设计 2020-12-10 22:40 次阅读

剑指Offer(37):数字在排序数组中出现的次数

一、引子

这个系列是我在牛客网上刷《剑指Offer》的刷题笔记,旨在提升下自己的算法能力。

二、题目

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

1、思路

看见有序,肯定就是二分查找了

做法就是使用二分法找到数字在数组中出现的第一个位置,再利用二分法找到数字在数组中出现的最后一个位置。时间复杂度为O(logn + logn),最终的时间复杂度为O(logn)。

举个例子,找到数字k在数组data中出现的次数。

数组data中,数字k出现的第一个位置:

我们对数组data进行二分,如果数组中间的数字小于k,说明k应该出现在中间位置的右边;如果数组中间的数字大于k,说明k应该出现在中间位置的左边;如果数组中间的数字等于k,并且中间位置的前一个数字不等于k,说明这个中间数字就是数字k出现的第一个位置。

同理,数字k出现的最后一个位置,也是这样找的。但是判断少有不同。我们使用两个函数分别获得他们。

2、编程实现

python

代码实现方案:
python有自带的方法进行查找~

# -*- coding:utf-8 -*-
class Solution:
    def GetNumberOfK(self, data, k):
        # write code here
        return data.count(k)

分享技术,乐享生活:我们的公众号计算机视觉这件小事每周推送“AI”系列资讯类文章,欢迎您的关注!

本文由博客一文多发平台 OpenWrite 发布!

审核编辑 黄昊宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 人工智能
    +关注

    关注

    1792

    文章

    47425

    浏览量

    238969
  • 机器学习
    +关注

    关注

    66

    文章

    8425

    浏览量

    132771
  • 深度学习
    +关注

    关注

    73

    文章

    5507

    浏览量

    121292
收藏 人收藏

    评论

    相关推荐

    指针数组和二维数组有没有区别

    。 首先是指针数组 s1。 s1 本身是个一维数组数组有三个元素,每个元素都是个指针。如果是 64 位系统,三个指针就占了 24 个字节。 使用 sizeof 计算 s1 的大小,结果就是 24。 三个
    的头像 发表于 11-24 11:12 191次阅读

    TPA3110D2调试的过程中出现的疑问求解

    你好,我们公司现在用贵公司的TPA3110D2,调试的过程中出现以下问题麻烦给个合理的解释,谢谢! 调试过程中,为了方便用示波器查看功放两端的信号,把示波器的插头的地线去掉。这时候用通道 1
    发表于 11-06 07:05

    TAS6424的开关频率2.MHz EMC CE电压法测试中出现超标情况,请问如何改善?

    TAS6424 的开关频率2.MHz EMC CE 电压法测试中出现超标情况。请问从哪个方面可以改善呢
    发表于 10-09 06:01

    labview字符串数组转化为数值数组

    LabVIEW中,将字符串数组转换为数值数组是一项常见的任务,尤其是处理数据采集、信号处理或用户输入时。 1. 理解LabVIEW的数据类型
    的头像 发表于 09-04 17:47 2538次阅读

    面试常考+1:函数指针与指针函数、数组指针与指针数组

    嵌入式开发领域,函数指针、指针函数、数组指针和指针数组是一些非常重要但又容易混淆的概念。理解它们的特性和应用场景,对于提升嵌入式程序的效率和质量至关重要。一、指针函数与函数指针指针函数:定义:指针
    的头像 发表于 08-10 08:11 929次阅读
    面试常考+1:函数指针与指针函数、<b class='flag-5'>数组</b>指针与指针<b class='flag-5'>数组</b>

    for循环最大能运行次数

    程序如图,在读取数组文件后for循环运行会卡顿,最后程序运行卡死。数组行数有40w+,是否是循环次数太多,延时从1ms、100ms、1000ms都试过了还是会卡死。
    发表于 07-27 09:09

    SMT锡膏焊接中出现锡珠的因素有哪些?

    SMT锡膏焊接过程中,锡珠现象是主要缺陷之一。锡珠产生的原因很多,而且不容易控制。那么导致SMT焊接中出现锡珠的因素有哪些呢?下面深圳佳金源锡膏厂家来介绍一下:1、SMT生产过程中,使用的锡膏应
    的头像 发表于 07-13 16:07 555次阅读
    SMT锡膏焊接<b class='flag-5'>中出现</b>锡珠的因素有哪些?

    SMT贴片加工中出现元器件移位的原因有哪些?

    SMT贴片加工现今高速发展的电子行业中是不可或缺的生产加工方式之一,对于密集化、小型化的电路板来说使用SMT贴片的形式来进行元器件的贴装是有重要意义的,但是贴片加工的生产中偶尔也会出现一些不良
    的头像 发表于 06-27 16:11 612次阅读
    SMT贴片加工<b class='flag-5'>中出现</b>元器件移位的原因有哪些?

    双线磁环共模电感测试中出现异常的原因分析

    电子发烧友网站提供《双线磁环共模电感测试中出现异常的原因分析.docx》资料免费下载
    发表于 06-03 14:50 0次下载

    keil 断点 执行次数设置后,出现非法变量的错误

    keil 断点 执行次数设置后,出现非法变量的错误。希望大家帮帮忙。
    发表于 06-02 19:25

    如何预防贴片加工中出现元器件偏移现象?

    SMT工厂的贴片加工中元器件的正确焊接直接影响到焊接质量,元件偏移是焊接质量的重要组成部分。如何预防贴片加工中出现元器件偏移现象呢?下面深圳佳金源锡膏厂家给大家简单介绍一下:1、严格校准定位坐标
    的头像 发表于 04-09 16:41 570次阅读
    如何预防贴片加工<b class='flag-5'>中出现</b>元器件偏移现象?

    想听听48和大对数光缆的排序

    48芯光缆和大对数光缆都是光缆中的一种,它们的区别在于芯数不同。48芯光缆指的是光缆中包含48根光纤,而大对数光缆则是光缆中芯数超过了48芯。 实际的光缆应用中,不同芯数的光缆需要进行不同的排序
    的头像 发表于 03-12 10:44 643次阅读

    数组和链表在内存中的区别 数组和链表的优缺点

    内存中的存储方式: 数组是一种连续存储的数据结构,它将元素存储相邻的内存位置中。这使得数组的访问效率高,可以通过下标来直接访问任何一个元素。 链表是一种离散存储的数据结构,它将元素存储
    的头像 发表于 02-21 11:30 1066次阅读

    怎么排除拉线位移传感器使用中出现的故障

    怎么排除拉线位移传感器使用中出现的故障  拉线位移传感器是一种常用于测量线性位移的设备,广泛应用于自动化控制系统、机械工程、航空航天和制造业等领域。然而,由于使用环境的复杂性和长时间的运行,拉线
    的头像 发表于 02-02 16:47 768次阅读

    PHP中数组的使用方法!

    PHP中数组的使用方法! PHP是一种广泛使用的网络编程语言,它的数组功能非常强大且灵活。数组是一种数据结构,它允许我们单个变量中存储多个值。
    的头像 发表于 01-12 15:11 568次阅读