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

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

    关注

    1821

    文章

    50512

    浏览量

    267746
  • 机器学习
    +关注

    关注

    67

    文章

    8570

    浏览量

    137422
  • 深度学习
    +关注

    关注

    73

    文章

    5614

    浏览量

    124753
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    使用ADUM3166的通信中,通信次数不定,会出现返回错误指令80000300,什么原因导致的?

    采用ADUM3166连接单片机和电脑,单片机支持高速协议,电脑上发送指令,或接收指令,没有ADUM3166的通讯上没有任何问题,无论发多少次均显示正常,但在使用ADUM3166的通信中,通信次数
    发表于 05-13 07:15

    嵌入式春招笔试高频算法题(附解题思路)

    ,若为无序数组,需先排序再去重; 原地去重:不使用额外数组,直接修改原数组,符合嵌入式笔试的效率要求; 返回值:笔试中,常要求返回去重后的数组
    发表于 03-18 10:08

    MAX16050/MAX16051:电压监测与排序电路的理想选择

    MAX16050/MAX16051:电压监测与排序电路的理想选择 电子设计领域,对于电压监测和电源排序的需求日益增长,特别是服务器、工作站、网络系统等复杂设备中。今天,我们就来深入
    的头像 发表于 03-02 09:15 193次阅读

    探秘ADM1186:高效电压监测与排序芯片的应用指南

    探秘ADM1186:高效电压监测与排序芯片的应用指南 电子工程师的日常工作中,电源管理是一个至关重要的环节。良好的电源管理不仅能确保设备的稳定运行,还能提高系统的可靠性和性能。今天,我们就来深入
    的头像 发表于 02-28 14:25 301次阅读

    ADM1066:多功能电源监控与排序芯片的深度解析

    ADM1066:多功能电源监控与排序芯片的深度解析 电子设备的设计中,电源的监控与排序是确保系统稳定运行的关键环节。ADM1066作为一款功能强大的电源监控与排序芯片,为多电源系统提
    的头像 发表于 02-28 14:05 274次阅读

    探索LM3880:三轨简单电源排序器的卓越性能与应用

    探索LM3880:三轨简单电源排序器的卓越性能与应用 电子设计领域,电源管理是一个至关重要的环节。今天,我们将深入探讨德州仪器(TI)推出的LM3880三轨简单电源排序器,它为多电压轨的电源
    的头像 发表于 02-26 17:20 692次阅读

    深入解析 UCD91320:32 轨 PMBus 电源排序器与系统管理器

    深入解析 UCD91320:32 轨 PMBus 电源排序器与系统管理器 电子系统设计中,精确的电源管理和故障监测至关重要。德州仪器(TI)的 UCD91320 32 - 轨 PMBus 电源排序
    的头像 发表于 02-26 15:25 384次阅读

    MAX16050/MAX16051:具备反向排序功能的电压监控与排序电路

    MAX16050/MAX16051:具备反向排序功能的电压监控与排序电路 电子系统设计中,对电源电压的精确监控和有序控制至关重要。Maxim Integrated推出的MAX16050
    的头像 发表于 01-31 17:15 1015次阅读

    C语言插入排序算法和代码

    是,将元素逐个添加到已经排序好的数组中去,同时要求,插入的元素必须在正确的位置,这样原来排序好的数组是仍然有序的。   实际使用中,通常
    发表于 01-15 06:44

    光纤线芯都是按照什么颜色排序

    多次有朋友留言问到,光纤熔接颜色如何排序,这个实际应用中还是比较多的,那么今天我们就不讲原理了,直接用图文简单明了讲光纤熔接色谱,大家可以了解下。 一、常规排序 1、4芯的排序:蓝、
    的头像 发表于 12-19 11:02 2590次阅读

    ‌NL37WZ16 高性能三路缓冲器技术深度解析

    安森美 NL37WZ16三路缓冲器是高性能缓冲器,输入工作电压范围为1.65V至5.5V,具有-55°C至+125°C的宽工作温度范围。安森美NL37WZ16器件可用作线路接收器接收慢速输入信号。这些器件具有驱动能力强、功耗低、信号完整性好的特点,使NL
    的头像 发表于 11-25 15:15 959次阅读
    ‌NL<b class='flag-5'>37</b>WZ16 高性能三路缓冲器技术深度解析

    数组的初体验

    程序中也需要容器,只不过该容器有点特殊,它在程序中是一块连续的,大小固定并且里面的数据类型一致的内存空间,它还有个好听的名字叫数组。可以将数组理解为大小固定,所放物品为同类的一个购物袋,该购 物
    发表于 11-25 08:06

    UART通信中出现随机乱码怎么解决?

    UART 通信中出现随机乱码
    发表于 11-21 07:05

    MDK536 + SWM34S平台移植LVGL8.3.3 定义数组使用ALIGN()对齐时编译报错是什么原因导致的?

    中出现此错误,不知道是什么原因导致的,请教一下各位大神。 具体问题如下: lv_rt_thread_port.c中Line37: static ALIGN(8) rt_uint8_t
    发表于 10-09 08:00

    季丰电子与盛科技达成战略合作

    8月29日,科技成立20周年庆祝活动上,季丰电子与盛科技举行了正式的战略合作签约仪式。
    的头像 发表于 09-01 18:08 1407次阅读