摩尔投票
摩尔投票的概念就是回合制比拼擂台赛,不分高下,只分生死。
A队有10个人,B队友7个人。
假设所有人能力相同,只要上了擂台赛,基本都是极限1换1.
那么因为A队有10人,而B队友7人,一换一的情况下,肯定是A队剩余三人,A队胜出。
那么情景换成选美国总统,众所周知美国有两党:共和党、民主党。
1亿美国人去投票选美国总统,少数服从多数。
string major = 0, count =0;
foreach(var party in people)
{
if(major == 0) major = party;
if(major == party) count++;
else{
count--;
}
}
return major;
代码解析:
假设 众数党派是:major = 0, 众数党派选票为: count =0
我们首先遍历一亿美国人手里的选票。
默认第一个人的选票为众数
把每一个人的选票和众数作比较。
如果选的政党相同,那么众数选票加1,如果不同,选票减1.
当所有人的选票比对完成后,众数就是当选的政党。