- 这个思路比较有趣,但限定一定存在众数的情况
把众数记为 +1,把其他数记为 -1,将它们全部加起来,显然和大于 0,从结果本身可以看出众数比其他数多。
class Solution {
public:
// Boyer-Moore 摩尔投票算法
int majorityElement(vector<int>& nums) {
int votes=0, res;
for(auto e: nums){
if(votes==0) res=e;
votes+=e==res?1:-1;
}
return res;
}
};