LCR 158. 库存管理 II 哈希 / 摩尔投票法

news2024/11/29 22:29:53

LCR 158. 库存管理 II - 力扣(LeetCode)

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



(1)方法一:先排序

题目说存在数的出现次数大于一半,所以排完序之后,返回中间位置对应的数就可行了

class Solution {
public:
    int inventoryManagement(vector<int>& stock) {
        sort(stock.begin(),stock.end());// 先排序
        return stock[stock.size() >> 1];
    }
};

 (2)方法二:哈希表

class Solution {
public:
    int inventoryManagement(vector<int>& stock) {
        int num = stock.size() >> 1;
        unordered_map<int,int> mp;
        for(const int &a:stock) {
            mp[a]++;
            if(mp[a]>num) return a;
        }
        return -1;
    }
};

(3)方法三:摩尔投票法

class Solution {
public:
    int inventoryManagement(vector<int>& stock) {
        int votes = 0;
        int x = 0;
        for(const int &num : stock) {
            if(votes==0) x=num;
            // if(x==num) votes++;
            // else votes--;
            votes += (x==num)? 1 : -1;
        }
        return x;
    }
};

推荐和参考文章:

LCR 158. 库存管理 II(摩尔投票,清晰图解icon-default.png?t=N7T8https://leetcode.cn/problems/shu-zu-zhong-chu-xian-ci-shu-chao-guo-yi-ban-de-shu-zi-lcof/solutions/138691/mian-shi-ti-39-shu-zu-zhong-chu-xian-ci-shu-chao-3/

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

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

相关文章

​Profinet转EtherNET/IP从站连接欧姆龙plc与西门子200smart通讯的配置方法​

本案例是200smart plc与欧姆龙plc进行通讯的方法&#xff0c;远创智控YC-PNM-EIP网关可以读写全系列西门子 PLC 数据。一般不需要 PLC 里做特殊的设置。只需要把 PLC 的变量地址配置到网关中&#xff0c;网关就可以读取指定地址的数据或者写数据到指定的地址。 PLC 通过网线连接…

Android---Bitmap详解

每一个 Android App 中都会使用到 Bitmap&#xff0c;它也是程序中内存消耗的大户&#xff0c;当 Bitmap 使用内存超过可用空间&#xff0c;则会报 OOM。 Bitmap 占用内存分析 Bitmap 用来描述一张图片的长、宽、颜色等信息&#xff0c;可用使用 BitmapFactory 来将某一路径下…

浮点数在计算机中的二进制表示

文章目录 Part.I IntroductionPart.II 原理Part.III 代码验证Reference Part.I Introduction 首先要了解一下下面的知识&#xff1a; 1 位有两种状态&#xff1a;0 或 11 字节&#xff08;byte&#xff09; 8 位&#xff08;bit&#xff09; 2 7 128 2^7128 27128&#xff1…

rhcsa简单的查询命令

时间 date -s "20021125 12:00:00" date 052312002002 一.简单语法 hwclock --查看硬件时间 hwclock --show 查看硬件时间 hwclock -w 同步硬件时间和系统时间 hwclock -s 将硬件时钟同步到系统时间 hwclock -r 查看当前时间 cal 查看当前月份日历 cal 10 …

nodejs+vue+elementui+express基于体质分析的个性化健身方案生成系统与设计

基于体质分析的个性化健身方案生成系统与设计 客户端&#xff1a; 1、在健身系统中可以自己选择课程&#xff08;需先充值&#xff0c;金额大于课程价格才可购买&#xff0c;否则提示余额不足&#xff0c;请充值&#xff09;&#xff0c;完成课程后由该课程的发布教练评价评分…

Python文件——使用Python读取txt文件

作者&#xff1a;Insist-- 个人主页&#xff1a;insist--个人主页 本文专栏&#xff1a;Python专栏 专栏介绍&#xff1a;本专栏为免费专栏&#xff0c;并且会持续更新python基础知识&#xff0c;欢迎各位订阅关注. 目录 一、文件的编码 1. 什么是编码 2. 常见的编码 二、P…

【软考】10.2 贪心法/回溯法/数据挖掘/智能优化

《贪心法》 适用于局部最优解 典型应用&#xff1a;背包问题 最有可能得到全局最优解&#xff1a;最大单位重量价值 ——> 重量 / 价值 《回溯法》 系统地搜索一个问题的所有解或者任一解深度优先&#xff0c;从根节点出发适用于解决迷宫类的问题 0-1背包算法的时间复杂度…

Python接口自动化之接口依赖!

以下主要介绍如何提取token、将token作为类属性全局调用及充值接口如何携带token进行请求。 一、场景说明 在面试接口自动化时&#xff0c;经常会问&#xff0c;其他接口调用的前提条件是当前用户必须是登录状态&#xff0c;如何处理接口依赖&#xff1f; 在此之前我们介绍过…

预训练机器阅读理解模型:对齐生成式预训练与判别式下游场景

©PaperWeekly 原创 作者 | 徐蔚文&#xff0c;李昕&#xff0c;邴立东等 单位 | 阿里巴巴达摩院 论文链接&#xff1a; https://arxiv.org/pdf/2212.04755.pdf 收录会议&#xff1a; NeurIPS 2023 论文链接&#xff1a; https://aclanthology.org/2023.acl-short.131.p…

038-第三代软件开发-简易视频播放器-自定义Slider (二)

第三代软件开发-简易视频播放器-自定义Slider (二) 文章目录 第三代软件开发-简易视频播放器-自定义Slider (二)项目介绍简易视频播放器自定义Slider (二)横向纵向 关键字&#xff1a; Qt、 Qml、 关键字3、 关键字4、 关键字5 项目介绍 欢迎来到我们的 QML & C 项目&…

进程(2)——进程状态(僵尸,睡眠……)【linux】

进程&#xff08;2&#xff09;——进程状态&#xff08;僵尸&#xff0c;睡眠……&#xff09;【linux】 一.操作系统的进程状态&#xff1a;1.1 运行态1.2 阻塞态1.3 挂起态 二.linux进程状态2.1 R——运行状态2.2 S——浅度睡眠状态2.3 D——&#xff08;disk sleep&#xf…

【数智化人物展】阿里元境CTO郭旷野:元宇宙技术推动数字内容生产变革

郭旷野 本文由阿里元境CTO郭旷野投递并参与《2023中国企业数智化转型升级先锋人物》榜单/奖项评选。 数据智能产业创新服务媒体 ——聚焦数智 改变商业 数字经济发展的大背景下&#xff0c;数字技术持续演进&#xff0c;逐渐形成了数字化生活、数字化生产模式&#xff0c;与此…

从工厂到社会:探索如何应用设计模式工厂模式

文章目录 &#x1f31f; 将设计模式工厂模式运用到社会当中&#x1f34a; 工厂模式在社会中的应用&#x1f389; 工厂&#x1f389; 餐厅&#x1f389; 运输 &#x1f34a; 工厂模式的优势&#x1f389; 代码简洁&#x1f389; 扩展性强&#x1f389; 便于维护和管理 &#x1f…

pytorch 笔记:KLDivLoss

1 介绍 对于具有相同形状的张量 ypred​ 和 ytrue&#xff08;ypred​ 是输入&#xff0c;ytrue​ 是目标&#xff09;&#xff0c;定义逐点KL散度为&#xff1a; 为了在计算时避免下溢问题&#xff0c;此KLDivLoss期望输入在对数空间中。如果log_targetTrue&#xff0c;则目标…

【继承练习题--多态-- 动态绑定-- 重写】

文章目录 继承的练习题&#xff1a;多态多态实现条件 动态绑定什么是重写Override 注解重写的条件&#xff08;缺一不可&#xff09;有一种特殊的重写&#xff1a;叫协变类型重写的设计原则快捷键生成重写重写和重载的区别object类是所有类的父类 总结 继承的练习题&#xff1a…

芯片封装简介【待补充】

TO封装 最开始的封装&#xff0c;这类封装三脚的比较多&#xff0c;比如7805 7812 等电源芯片 STO三脚贴片封装 TO的贴片形式 三极管和LDO比较常见 DIP封装 51单片机&#xff08;双列直插式封装&#xff09; SIP封装单列直插式封装&#xff08;罕见&#xff09; 5. SOP封…

出师表排序

一.原文件 二.代码 package org.example;import java.io.*; import java.util.ArrayList; import java.util.Collections; import java.util.List;public class day12 {public static void main(String[] args) {try (BufferedReader br new BufferedReader(new FileReader(…

Android 3D Launcher锁定IMU界面

故事背景&#xff1a; 最近工厂反馈由于VR设备老化测试完成之后&#xff0c;变绿界面不明显&#xff0c;只占3D系统一部分,每次需要戴头盔&#xff0c;才能确定老化完成。导致工厂效率变低&#xff0c;如果后期产能变大&#xff0c;效率更低。 1、针对以上需求我们需要拆分 1、…

动态规划-扫地机器人最少初始电量

扫地机器人在一个方格形状的地图中执行清扫任务&#xff0c;地图中每一个格子代表一个房间&#xff0c;地图用一个数组来表示&#xff1a; 1&#xff09;扫地机器人从地图左上角出发&#xff0c;每次清扫完一个房间后只能向石或向下走到另外一个房间&#xff0c;最后到达右下角…

LeetCode--196. 删除重复的电子邮箱

文章目录 1 题目描述2 解题思路2.1 代码实现 1 题目描述 表: Person ---------------------- | Column Name | Type | ---------------------- | id | int | | email | varchar | ----------------------id 是该表的主键列(具有唯一值的列)。 该表的每…