力扣--LCR 158.库存管理II
题目
仓库管理员以数组 stock 形式记录商品库存表。stock[i] 表示商品 id,可能存在重复。请返回库存表中数量大于 stock.length / 2 的商品 id。
示例 1:
输入: stock = [6, 1, 3, 1, 1, 1]
输出: 1
限制:
1 <= stock.length <= 50000
给定数组为非空数组,且存在结果数字
代码
摩尔投票法
class Solution {
public int inventoryManagement(int[] nums) {
if(nums.length <= 2){
return nums[0];}
int x = nums[0];
int sum = 1;
for(int i = 1; i < nums.length; i++){
if(sum == 0){
x = nums[i];
sum = 1;
} else {
if(x == nums[i]){
sum++;
} else {
sum--;
}
}
}
return x;
}
}
时间复杂度:O(n)
额外空间复杂度:O(1)