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 发布!

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

    关注

    1791

    文章

    46972

    浏览量

    237841
  • 机器学习
    +关注

    关注

    66

    文章

    8387

    浏览量

    132484
  • 深度学习
    +关注

    关注

    73

    文章

    5495

    浏览量

    121051
收藏 人收藏

    评论

    相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    PHP中数组的使用方法!

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

    LTC3350使用中出现烧毁的原因?怎么解决?

    OUTFB设置为12V。设备搭载汽车上的使用过程中出现了4套不同程度的芯片烧毁,主要集中VIN和ICAP引脚。想知道会是什么原因导致这种情况发生呢?温度,还是电源浪涌,参考的输入滤波电容只有一个0.1uF会不会太少还是其它原
    发表于 01-04 08:01

    十大排序算法总结

    排序算法是最经典的算法知识。因为其实现代码短,应该广,面试中经常会问到排序算法及其相关的问题。一般面试中最常考的是快速排序和归并
    的头像 发表于 12-20 10:39 1094次阅读

    数组和指针不相同吗?数组和指针有哪些区别

    数组就是指针,指针就是数组,这样的言论评论区看到不下于10次。
    的头像 发表于 12-13 16:34 1368次阅读
    <b class='flag-5'>数组</b>和指针不相同吗?<b class='flag-5'>数组</b>和指针有哪些区别

    数组与指针不能混用的情况

    数组与指针不能混用的情况  数组与指针是 C/C++ 中非常常见的特性和概念。然而,某些情况下,数组与指针是不能混用的。这种情况通常涉及到数组
    的头像 发表于 12-07 13:46 581次阅读