采用投票法 求数组多数元素,原理如下:
假设有一个for循环,分别设置数组中的每一个数字为候选人,每一个候选人上台时都会有一次投票,投票规则如下:如果候选人与自己相等,那么就投一个+1票,反正投-1票。那么最后的投票结果result除了数组中的众数之外都为负数。我们只需要判断以下即可。
class Solution32 {//投票法
public int majorityElement(int[] nums) {
int candidate=0;
int result=0;
for(int num:nums){
candidate=num;
for(int num1:nums){
if(num1==candidate){
result++;
}else{
result--;
}
if(result>0) {
break;
}
}
}
return candidate;
}
}