解决库存管理中的多数元素问题:摩尔投票算法
在实际的库存管理系统中,时常会遇到一些商品在库存中的数量远大于其他商品的情况。假设我们有一个记录库存的数组,数组中的每个元素代表商品的 ID,可能会出现重复的情况。那么如何找出在库存中数量大于数组一半的商品 ID 呢?在本篇博客中,我们将通过一个经典的算法——摩尔投票算法,来高效地解决这个问题。
题目描述
给定一个商品库存数组 stock
,每个元素表示商品的 ID,可能会有重复。我们需要找出数量大于 stock.length / 2
的商品 ID,并返回该商品 ID。题目保证,数组中一定存在一个商品 ID 的数量大于一半。
示例:
示例 1:
输入:stock = [6, 1, 3, 1, 1, 1]
输出:1
示例 2:
输入:stock = [2, 2, 1, 1, 1, 2, 2]
输出:2
提示:
- 数组的长度在 1 到 50,000 之间。
- 数组中存在的商品 ID 至少有一个数量大于
stock.length / 2
。