题目
思路
众数在集合里的数量超过一半,每次把两个不同的数字去除相当月兑子,最后剩下的肯定是众数。
count=0 时就相当于把若干组不同值的元素兑掉了。
题解
class Solution {
// 众数在集合里的数量超过一半,每次把两个不同的数字去除相当月兑子,最后剩下的肯定是众数。
// count=0 时就相当于把若干组不同值的元素兑掉了。
public int majorityElement(int[] nums) {
int cnt = 0;
int cur = nums[0];
for (int i = 0; i < nums.length; i++) {
if (nums[i] == cur) {
cnt++;
} else {
cnt--;
}
if (cnt == 0) {
cur = nums[i];
cnt = 1;
}
}
return cur;
}
}