bool FindMostApperse(int *num,int len,int &candidate)
{
int count = 0;
for(int i = 0;i < len;++i)
{
if(count == 0) //目前得到的数出现次数为0时,更换另外一个数
{
candidate = num[i];
count = 1;
}
else
{
if(candidate = num[i])
count++; //相同+1
else
count--; //不同-1,
}
}
//检验找到的是否真是众数
count =0;
for(i = 0;i < len; ++i)
{
if(candidate == num[i])
count++;
}
if(count > len/2)
return true;
else
return false;
}
在O(n)时间复杂度内找出数组中的众数
最新推荐文章于 2025-02-06 11:17:37 发布