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

编程入门 行业动态 更新时间:2024-10-25 02:21:32

LCR 158. <a href=https://www.elefans.com/category/jswz/34/1769664.html style=库存管理 II 哈希 / 摩尔投票法"/>

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

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(摩尔投票,清晰图解/

更多推荐

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

本文发布于:2024-02-26 16:54:25,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1703235.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:库存管理   LCR   II   哈希

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!