1.简介
候选人算法是找一种优秀的找众数的算法。
2.思路:
遍历数组,如果与候选人相等,票数就++,如果不等票数就--,如果票数=0就切换候选人。
其实就是 把不相同的两个数消掉,最后剩下的那个候选人肯定是出现次数大于一半的众数。
int majorityElement(int* a,int n)
{
int majority = a[0];
int count = 1;
for (int i =1;i < n;i++)
{
if (count != 0)
{
if (majority == a[i])
count++;
else
count--;
}
else
{
majority = a[i];
count = 1;
}
}
return majority;
}