Note:Boyer-Moore 投票算法
一开始随便定一个候选的数,遍历数组,如果一样,cnt++ 否则 cnt –
如果等于0了,那么就更换当前的数作为新的候选数
这样到最后,指定能找到最多的那一个
代码如下:
class Solution {
public:
int majorityElement(vector<int>& nums) {
int c = nums[0], cnt = 1;
for(int i = 1; i < nums.size(); i ++){
if(cnt == 0)
c = nums[i], cnt = 1;
else if(c == nums[i])
cnt ++;
else
cnt --;
}
return c;
}
};
版权声明:本文为Mr_Ghost812原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。