Leetcode 剑指 Offer II 158. 库存管理 II

题目难度: 简单

原题链接

今天继续更新 Leetcode 的剑指 Offer(专项突击版)系列, 大家在公众号算法精选里回复剑指offer2就能看到该系列当前连载的所有文章了, 记得关注哦~

题目描述

仓库管理员以数组 stock 形式记录商品库存表。stock[i] 表示商品 id,可能存在重复。请返回库存表中数量大于 stock.length / 2 的商品 id。

示例 1:

  • 输入:stock = [6, 1, 3, 1, 1, 1]
  • 输出:1

提示:

  • 1 <= stock.length <= 50000
  • 给定数组为非空数组,且存在结果数字

题目思考

  1. 如何不使用额外空间?
  2. 如果题目不保证一定存在多数元素又该怎么办?

解决方案

思路
  • 一个最简单的思路是用一个计数字典存每个数字的出现次数, 找最大的那个即可, 但这需要额外的空间, 不是面试官心目中的理想答案
  • 重新分析题目, 某个数字出现超过一半, 那意味着其他数字的数目之和都小于它, 如果我们将这些不同数字进行两两抵消, 那么最后剩余的那个数字一定是超过一半的那个数字, 这就引出了下面的思路:
    1. 维护一个当前候选者, 以及当前它的计数, 初始化就是数组头一个数字, 计数为 1
    2. 从第二个数字开始遍历数组, 如果当前数字等于候选者, 那么计数值加 1, 否则就减 1 表示抵消了一个数字
    3. 如果此时计数小于 0 的话, 就说明之前的候选者这个时候要被淘汰了, 因为它已经被抵消光了. 所以就重新选择当前的数字作为新的候选者, 同时重置计数值为 1.
    4. 这样最后剩余的那个候选者一定是最终结果, 因为此题的前提是一定存在这样的数字
  • 当然, 如果题目不保证一定存在多数元素, 那么我们在得到最终候选者之后, 需要重新遍历一遍数组并累加其计数, 确保其计数超过一半, 不然的话就说明整个数组没有多数元素. 例如数组[1,2,3], 利用此方法得到的最终候选者为 3, 但它并不是多数元素, 只是恰好最后一个被选出来的候选者而已.
复杂度
  • 时间复杂度O(N)
    • 只需要遍历数组一遍
  • 空间复杂度O(1)
    • 只使用了几个变量
代码
classSolution:definventoryManagement(self,stock:List[int])->int:# 初始化候选者和计数res=stock[0]cnt=1forxinstock[1:]:ifx==res:# 当前元素等于候选者, 计数值+1cnt+=1else:# 否则计数值-1cnt-=1ifcnt<0:# 如果计数值小于0的话, 就说明之前保存的候选者现在被淘汰了, 将当前元素变为新的候选者, 并重置计数值为1res=x cnt=1returnres

大家可以在下面这些地方找到我~😊

我的 GitHub

我的 Leetcode

我的 CSDN

我的知乎专栏

我的头条号

我的牛客网博客

我的公众号: 算法精选, 欢迎大家扫码关注~😊

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1173542.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学术“变形记”:用书匠策AI把本科论文从“青铜”炼成“王者”

对于本科生来说&#xff0c;论文写作就像一场“升级打怪”的冒险&#xff1a;选题时像在迷雾森林里找出口&#xff0c;文献综述时仿佛在知识海洋里捞针&#xff0c;写作时又像在搭建一座没有图纸的积木城堡。但别怕&#xff01;现在有一款名为书匠策AI的学术“魔法棒”&#xf…

2026年承德服务不错的西点学校,唐山欧米奇就业渠道广 - 工业品牌热点

在西点烘焙行业快速发展的当下,选择一所口碑不错的西点烘焙学校,是开启职业技能提升或创业梦想的关键一步。面对市场上各类西点学校,如何找到服务不错的西点学校?以下将从不同特色维度,为你推荐5所值得关注的西点…

2025年市面上口碑好的智能门窗厂家选哪家,全屋门窗/家居装修/环保门窗/豪宅设计/法式门窗企业找哪家 - 品牌推荐师

随着智能家居市场的爆发式增长,智能门窗作为家庭场景中高频使用的硬件,其技术迭代与市场需求呈现双向驱动。据第三方机构统计,2024年国内智能门窗市场规模突破320亿元,年复合增长率达21.3%,但行业仍面临产品同质化…

本科论文“开挂指南”:用书匠策AI解锁学术新次元

对于本科生而言&#xff0c;论文写作像一场“升级打怪”的冒险&#xff1a;选题撞车、文献读不完、逻辑混乱、格式扣分……这些问题让无数学生深夜抓狂。但如今&#xff0c;一款名为书匠策AI的科研工具正以“学术外挂”的姿态&#xff0c;将论文写作从“地狱模式”变为“轻松通…

短视频软件代码,改进for循环时间复杂度的一种办法

短视频软件代码&#xff0c;改进for循环时间复杂度的一种办法 找到n个数中 有几对 两个数之和为7的倍数 //(相比两层for循环时间复杂度仅为O(N)的改进算法) #include<iostream> #include<algorithm> #include<string> #include<string.h> #include<…

在强干扰战场中构筑不败链路:光特通信光纤无人机模块技术解析

当无人机在战场、高压电网或复杂城市环境中执行关键任务时&#xff0c;传统的无线电通信常常面临被干扰、中断甚至劫持的风险。光特通信凭借其自主研发的光纤无人机专用通信模块&#xff0c;为这一难题提供了突破性的解决方案——通过一根细如发丝的光纤&#xff0c;实现120公里…

直播短视频系统,如何实现滚动条样式?

直播短视频系统&#xff0c;如何实现滚动条样式&#xff1f;.test-5::-webkit-scrollbar {/*滚动条整体样式*/width : 10px; /*高宽分别对应横竖滚动条的尺寸*/height: 1px;}.test-5::-webkit-scrollbar-thumb {/*滚动条里面小方块*/border-radius : 10px;background-color:…

论文写作“超能力”觉醒:书匠策AI如何让本科生变身学术“超级英雄”

在学术江湖中&#xff0c;本科生常被视为“新手村”的萌新&#xff0c;面对论文写作这座“终极BOSS”&#xff0c;常常陷入选题撞车、文献迷航、逻辑混乱、语言生硬等困境。但如今&#xff0c;一款名为书匠策AI的“学术外挂”横空出世&#xff0c;它以智能算法为武器&#xff0…

短视频开源源码,js函数柯里化

短视频开源源码&#xff0c;js函数柯里化 函数柯里化 维基百科&#xff1a; 柯里化&#xff08;英语&#xff1a;Currying&#xff09;&#xff0c;又译为卡瑞化或加里化&#xff0c;是把接受多个参数的函数变换成接受一个单一参数&#xff08;最初函数的第一个参数&#xff09…

学术新次元:书匠策AI如何重构本科论文写作的“底层逻辑”

在本科阶段&#xff0c;论文写作常被视为学术生涯的“第一场硬仗”——选题撞车、文献迷航、逻辑混乱、语言生硬……这些问题像无形的枷锁&#xff0c;将无数学生困在“学术新手村”。但如今&#xff0c;一款名为书匠策AI的智能工具正以“学术外挂”的姿态&#xff0c;将论文写…

【2026最新 架构环境安装篇一】云服务器Linux安装docker详细教程

#更新最新系统 yum update -y#安装所需的软件包以允许yum使用HTTPS存储库 sudo yum install -y yum-utils device-mapper-persistent-data lvm2#使用docker官方GPG密钥 sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#…

范式革命——从关键词到对话理解的演进

引言&#xff1a;搜索技术的世纪转折点在信息技术发展史上&#xff0c;2022年无疑是具有里程碑意义的一年。随着ChatGPT的横空出世和生成式AI的爆发式增长&#xff0c;搜索引擎——这个陪伴我们近三十年的互联网核心工具&#xff0c;正经历着自诞生以来最深刻的范式变革。我们正…

2024必备10个降AI率工具,本科生速看!

2024必备10个降AI率工具&#xff0c;本科生速看&#xff01; AI降重工具&#xff0c;让论文更“自然” 在当前高校论文写作中&#xff0c;越来越多的学生开始关注“**AIGC率**”和“**查重率**”的问题。随着AI技术的普及&#xff0c;使用AI工具辅助写作虽然提高了效率&#xf…

暗流涌动——AI搜索的社会影响与伦理深水区

引言&#xff1a;当算法成为知识守门人2023年底&#xff0c;随着ChatGPT的搜索功能正式上线&#xff0c;全球互联网信息获取生态发生了一场静默的地震。当AI不再仅仅提供链接列表&#xff0c;而是直接给出“答案”时&#xff0c;我们与信息的整个关系链正在被重构。这种转变超越…

不思量,自难忘 ! 缅怀攵亲仙逝三周年。

不思量&#xff0c;自难忘 &#xff01; 缅怀攵亲仙逝三周年。 您的女儿 时光如梭&#xff0c;白驹过隙&#xff0c;转眼间&#xff0c;父亲离开我们已近三年。这三年。常常在夜深人静时&#xff0c;一句“不思量&#xff0c;自难忘”常在心头如流涌动。这种思念&#xff0c;已…

【跟随主线】低频量化周报(指数风险溢价比,配债完整数据集,可转债策略,上市公司礼品,交易总结)

低频量化周报&#xff08;2026-01-16&#xff09;指数风险溢价比小规模配债<5亿配债完整数据5 批文通过4 发哥通过3 交易所受理2 股东大会通过1 董事会预案可转债策略双低策略低溢价策略小盘低价格策略小盘低溢价策略溢价偏离策略上市公司实物礼品历史操作记录本周心得最后指…

【云计算】云平台权限治理(五):VDC 的树形管理结构 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

WorldModel_Theory_002_PPT

1) “部分可观测”到底在说什么 在很多真实问题里&#xff0c;环境内部有个真实状态&#xff08;你看不见&#xff09;&#xff0c;但你能拿到的是一个观测 oto_tot​&#xff08;传感器/图像/日志&#xff09;。 观测的关键特征是&#xff1a;它是对状态的部分描述&#xff0…

计算机毕业设计|基于springboot + vue心理健康管理系统(源码+数据库+文档) - 教程

计算机毕业设计|基于springboot + vue心理健康管理系统(源码+数据库+文档) - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font…

2025年市场有名的艺术漆产品推荐,艺术涂料/诺兰迪/诺兰迪艺术漆/环保艺术涂料/艺术漆/家装艺术漆,艺术漆公司排行 - 品牌推荐师

行业背景:艺术漆市场分化加剧,品质与环保成竞争核心 近年来,随着消费者对家居美学与健康居住需求的双重升级,艺术漆行业迎来爆发式增长。据第三方机构统计,2024年中国艺术漆市场规模突破300亿元,年复合增长率达1…