1. 题目
2. 思路
(1) 摩尔投票法
- 由于众数出现的次数比其他所有数字出现的次数之和都要多,因此可以利用一个变量保存当前下标之前的众数,另一个变量保存该众数比其他数字多出现的次数,当次数为0时,将众数替换为当前下标的数字。
3. 代码
public class Test {
public static void main(String[] args) {
}
}
class Solution {
public int majorityElement(int[] nums) {
int res = nums[0];
int count = 1;
for (int i = 1; i < nums.length; i++) {
if (res != nums[i]) {
count--;
if (count == 0) {
res = nums[i];
count = 1;
}
} else {
count++;
}
}
return res;
}
}