当前位置: 首页 > article >正文

Leetcode 剑指 Offer II 172. 统计目标成绩的出现次数

题目难度: 简单原题链接今天继续更新 Leetcode 的剑指 Offer专项突击版系列, 大家在公众号算法精选里回复剑指offer2就能看到该系列当前连载的所有文章了, 记得关注哦~题目描述某班级考试成绩按非严格递增顺序记录于整数数组 scores请返回目标成绩 target 的出现次数。示例 1输入: scores [2, 2, 3, 4, 4, 4, 5, 6, 6, 8], target 4输出: 3示例 2输入: scores [1, 2, 3, 5, 7, 9], target 6输出: 0提示0 scores.length 105-10^9 scores[i] 109scores 是一个非递减数组-10^9 target 10^9题目思考可以用小于 O(N)的时间复杂度得出结果吗?可以做到 O(1) 空间复杂度吗?解决方案思路一个比较容易想到的思路是使用一个计数字典, 遍历一遍数组统计每个数的出现次数, 最后返回 target 的次数. 但这样时间和空间复杂度都是 O(N), 也用不上题目中数组是排序的这一条件如何利用排序这一条件统计数字出现次数呢? 我们可以尝试二分查找的思路, 分别找到该数字的左右边界对应的下标, 然后次数就是右边界-左边界1(数组存在该数字的情况下)查找左边界: 如果找到等于 target 的数时, 需要继续往左找. 而如果数组中没有等于 target 的数, 则直接返回 None, 此时就知道该数字的出现次数为 0 了, 无需继续找右边界查找右边界: 如果找到等于 target 的数时, 需要继续往右找注意可以将二分查找代码整合到一个方法中, 传入一个 flag 标记当前是找左边界还是右边界, 以减少代码冗余下面代码对必要的步骤有详细的解释, 方便大家理解复杂度时间复杂度 O(logN): 二分查找两次空间复杂度 O(1): 只定义了几个变量代码classSolution:defcountTarget(self,scores:List[int],target:int)-int:defbinarySearch(isleft):# 传入flag isleft, 标记当前是查找左边界还是右边界s,e0,len(scores)-1# 初始化结果为NoneresNonewhilese:m(se)1ifscores[m]target:ifisleft:# 当前查找的是左边界, 更新结果为等于target的更小的下标, 同时向左继续查找resmifresisNoneelsemin(res,m)em-1else:# 当前查找的是右边界, 更新结果为等于target的更大的下标, 同时向右继续查找resmifresisNoneelsemax(res,m)sm1elifscores[m]target:sm1else:em-1returnres leftbinarySearch(True)ifleftisNone:# 如果左边界不存在, 则说明整个数组没有target, 直接返回0return0rightbinarySearch(False)# 最终结果就是右边界-左边界1returnright-left1大家可以在下面这些地方找到我~我的 GitHub我的 Leetcode我的 CSDN我的知乎专栏我的头条号我的牛客网博客我的公众号: 算法精选, 欢迎大家扫码关注~

相关文章:

Leetcode 剑指 Offer II 172. 统计目标成绩的出现次数

题目难度: 简单 原题链接 今天继续更新 Leetcode 的剑指 Offer(专项突击版)系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 某班级考试成绩按非严格递增顺序记录于整数数组 scores&#xff…...

长沙装修设计供应商

在长沙,装修设计是很多人关心的话题。无论是家装、别墅还是商业空间,选择一个合适的设计供应商至关重要。今天,就为大家推荐一家值得信赖的装修设计供应商——长沙互知空间设计工作室,即长沙互知建筑设计有限公司。下面从几个方面…...

用Python手把手复现GRO淘金优化算法(附完整代码与CEC2005测试)

用Python手把手复现GRO淘金优化算法(附完整代码与CEC2005测试)当算法工程师第一次接触GRO淘金优化算法时,往往会被其独特的生物启发式设计所吸引。这种模拟19世纪淘金者行为的元启发式算法,在解决复杂优化问题时展现出令人惊讶的效…...

esp开发与应用(1602液晶显示屏)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】模块当中,有的是比较简单的,比如说蜂鸣器,尤其是有源蜂鸣器。大家可以把它想象成是一个gpio输出的喇叭&#xff…...

饲料颗粒机生产厂家

行业痛点分析:一场关于“磨损”与“成本”的持久战在饲料加工领域,颗粒机设备的稳定性与耐用性,直接决定了生产线的整体效率与运营成本。然而,长期困扰行业的核心痛点之一,是磨盘与压辊的耐磨性问题。根据行业调研数据…...

各个AI公司都在玩的Harness 架构:Harness架构深度解析

Harness 架构深度解析为什么 AI 智能体的未来不是框架,而是「运行壳」TL;DR 三分钟看懂这篇文章•当 Claude Code、Cursor、Codex、Windsurf 四款产品独立演化出几乎相同的内部架构时,一种叫做 Harness(运行壳)的新形态浮出水面。…...

基于 FreeRTOS + ESP8266(AT 指令)+ MQTT的实现方案

一、整体系统架构 ┌─────────────────────────────────────────────┐ │ Host MCU (dsPIC33 / STM32) │ │ │ │ ┌────────────┐ UART ┌…...

西安家谱印刷厂哪家好

你知道吗?我走访了全国20多个宗亲会,发现一个扎心的事实——超过70%的家庭在第一次修谱时,都踩过同样的坑。有位陕西的陈姓宗长,花了整整3年时间收集家族资料,结果找了一家小印刷厂,拿到手的家谱&#xff0…...

MySQL InnoDB引擎八大核心特性详解(高频面试题)

📚 专栏:MySQL底层原理&面试必刷💡 适用人群:后端开发、数据库学习者、面试刷题者🔥 博客简介:InnoDB是MySQL 5.5默认存储引擎,也是企业项目唯一主流引擎。本文通俗易懂图文拆解其核心特性&…...

第一次的博客

我是???计划考研由于是跨考,计划从0开始,先打c语言基础,再学习数据结构每天二~三小时暂无...

Windows 批量解压 TAR 文件脚本:支持文件数量校验、断点续解压和自动跳过

文章目录一、需求说明二、脚本功能三、为什么使用 7-Zip1. 7-Zip 支持命令行调用2. 方便读取 tar 包内部文件列表3. 支持跳过已存在文件,适合断点续解压4. 对 tar 文件支持比较稳定5. 适合处理大量小文件场景四、完整 BAT 脚本五、使用前需要修改的地方六、脚本运行…...

如何用OneNote Markdown插件快速提升笔记效率:终极指南

如何用OneNote Markdown插件快速提升笔记效率:终极指南 【免费下载链接】NoteWidget Markdown add-in for Microsoft Office OneNote 项目地址: https://gitcode.com/gh_mirrors/no/NoteWidget 还在为OneNote复杂的格式调整而烦恼吗?想象一下&…...

2026年杭州靠谱的GEO优化公司,杭州这里通网络科技值得选择吗?

在数字化时代,企业越来越重视线上推广,GEO优化服务能有效提升企业在AI平台上的曝光和流量,因此很多企业关注靠谱的GEO优化公司。杭州这里通网络科技就是一家值得了解的企业。 ### 选择标准 技术能力:靠谱的GEO优化公司应具备强大…...

Win10升级21H2后远程桌面黑屏?一个组策略设置帮你搞定(附gpedit.msc详细路径)

Windows 10 21H2远程桌面黑屏故障深度解析与精准修复方案当你从Windows 10 1909版本升级到21H2后,是否遇到过这样的场景:远程桌面连接看似成功,却在15秒后突然黑屏断开,只留下"您的远程桌面会话已结束"的模糊提示&#…...

胖瘦 AP 网络仿真实验

一.实验概述实验名称:胖瘦 AP 网络仿真实验实验目的:掌握胖 AP(FAT AP)与瘦 AP(FIT AP)两种无线组网模式的工作原理与配置方法,理解两者的核心差异实现指定网络连通性要求:瘦 AP 侧静…...

07-大模型智能体开发工程师:提示词工程(Prompt Engineering)

系列文章导航:AI系列文章导航目录-持续更新中 第07课:提示词工程(Prompt Engineering) 📝 本文摘要:本文系统讲解提示词工程的核心认知和方法论,包括六大设计原则(清晰明确、给出示例…...

办公场景横向测评:GPT-5.5、DeepSeek、Gemini 处理公文优劣对比

进入 2026 年,AI 办公已经从“帮我写一段话”逐渐变成了“帮我完成一整套文档流程”。尤其是在公文、通知、会议纪要、方案初稿、汇报材料等场景里,大模型能不能理解语境、控制语气、保持格式,直接影响实际使用体验。目前常见的办公 AI 模型中…...

Java的背景知识及快速入门

Java的背景知识1.Java的历史知识Java是哪家公司的产品?Java是美国Sun(Stanford University Network,斯坦福大学网络公司)公司在1995年推出的一 门计算机高级编程语言。但是在2009年是Sun公司被Oracle(甲骨文&#xff0…...

告别昂贵定位器!用Python和PyTorch复现DCL-Net,实现无传感器3D超声重建

告别昂贵定位器!用Python和PyTorch复现DCL-Net实现无传感器3D超声重建在医学影像领域,3D超声重建技术正逐步改变传统诊断方式。想象一下,医生只需手持普通超声探头自由扫描,AI系统就能自动将二维切片合成为三维立体图像——这正是…...

Llama3-8B中文微调实战:用‘弱智吧’QA数据让模型学会说人话

Llama3-8B中文微调实战:用趣味问答数据打造会说人话的AI当Meta发布Llama3系列模型时,技术社区最关注的是其70B版本,但8B版本在资源消耗和微调灵活性上的优势不容忽视。本文将展示如何用中文互联网特有的"弱智吧"风格问答数据&#…...

给Llama-3-8B-Instruct加个‘垫片’:手把手教你安全添加Pad Token并微调(附完整代码)

为Llama-3-8B-Instruct安全添加Pad Token的工程实践指南当你在微调Llama-3-8B-Instruct时,是否遇到过这样的困扰:模型没有提供Pad Token,导致数据处理和训练过程中出现各种不便?这个问题看似简单,实则暗藏玄机。本文将…...

Java国密SM2证书Unknown curve异常的三步绕过方案

1. 这不是JDK的bug,是国密算法在Java生态里“没户口”的真实写照你刚把SM2证书集成进Spring Boot服务,调用验签接口时控制台突然炸出一行红字:java.security.InvalidKeyException: Unknown curve。接着堆栈里全是sun.security.ec.ECParameter…...

函数指针调用的两种语法及其在嵌入式C中的应用

1. 函数指针调用:两种语法背后的故事在嵌入式C开发中,函数指针是实现回调机制、插件架构和动态行为的关键技术。最近有工程师发现,通过函数指针调用函数时存在两种看似不同的语法形式:(*ptr)(); // 传统间接调用语法 ptr(); …...

CVE二进制工具:无源码漏洞检测的原理与实战

1. 这不是又一个“扫扫就完事”的漏洞扫描器很多人第一次听说“CVE二进制工具”时,下意识会把它和常见的Web漏洞扫描器(比如Nessus、OpenVAS)划等号——点几下鼠标,跑个任务,出份PDF报告,然后发给安全部门交…...

小学期学习——第二周

一、本周学习视频6-7学习了单电源供电的二阶低通滤波器以及电子计数法,并对仿真进行了改进。二、绘制了PCB原理图学习使用嘉立创EDA,并且绘制了PCB原理图。...

第 12 周 周报

牛 客 :周赛144,DEF C F :(dive2 1097) C D (dive2 1098)B (dive2 1099)BCD...

瑞德克斯在手机端的表现稳不稳?是否适合随时查看行情?

瑞德克斯在手机端的表现稳不稳?是否适合随时查看行情?移动端是当下用户接触金融服务最频繁的入口之一。瑞德克斯在手机端的体验打磨上下了不少功夫,让常用功能可以在小屏幕上同样得到清晰、舒适的呈现。瑞德克斯的移动应用采用了简洁的导航设…...

安全合规:满足行业安全标准和法规要求

安全合规:满足行业安全标准和法规要求 一、安全合规概述 1.1 安全合规的定义 安全合规是指企业在信息安全方面遵守相关法规、标准和行业规范的过程。它涉及数据保护、隐私安全、访问控制等多个方面,确保企业信息系统的安全性和合规性。 1.2 安全合规的价…...

从黑猩猩内战到人类关系:互动是系统的命脉,遗忘是文明的暗礁

从黑猩猩内战到人类关系:互动是系统的命脉,遗忘是文明的暗礁 将黑猩猩Ngogo群体从平和共处走向相互屠戮的演变过程,结合人类关系分型自相似性理论对照分析,一套完整的认知逻辑就此显现。江河支流汇聚、树木枝杈生长,乃…...

Go语言内存泄漏:pprof与监控

Go语言内存泄漏:pprof与监控 1. 内存泄漏检测 go tool pprof http://localhost:6060/debug/pprof/heap2. 总结 定期使用pprof检测内存使用,及时发现泄漏。...