摩尔投票就是不同国家打仗,每次打仗都两败俱伤。不管是其他国家对战,还是其他所有国家都和拥有超过士兵总数一半的国家对战。拥有超过士兵总数一半的国家对战一定是最后的胜者。
摩尔投票用于选出在数组中出现次数 大于 ⌊ n/2 ⌋
的元素。
设置一个候选人和一个计数器count。遍历数组,每次遇到和候选人一样的值则count + 1,否
则count - 1.当count == 0 时替换候选人,计数器从新机票。最后剩下的就是我们所求的众数。
给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋
的元素。
你可以假设数组是非空的,并且给定的数组总是存在多数元素。
示例 1:
输入:[3,2,3]
输出:3
public int majorityElement(int[] nums) {
int count=1; //计数器初始化为1
int result=nums[0];
for(int i=1;i<nums.length;i++)
{
if(nums[i]==result)
count++;
else
count--;
if(count==0)
{
result=nums[i];
count=1;
}
}
return result;
}