摩尔投票

摩尔投票

摩尔投票的概念就是回合制比拼擂台赛,不分高下,只分生死。
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.

当所有人的选票比对完成后,众数就是当选的政党。

原文地址:https://www.cnblogs.com/tangpeng97/p/14479580.html