【发布时间】:2016-06-03 00:34:33
【问题描述】:
假设我们有这两个数据数组
{ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5 }
{ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 }
在找出候选者之后,我创建了一个函数,然后确定该候选者是否确实是数组中的多数元素。对于第一个数组示例,它可以完美运行,但对于第二个数组示例则不行。
for (int i = 0; i < sz; i++){
if (arr[i] == mElement){
count++;
}
}
if (count> sz/2){
majority = mElement;
return true;
}
else{
return false;
}
对于第二个数组,多数元素显然应该是 4,但我的代码一直返回 5。当他计数达到 10 后,它应该切换到查看 4 是否是多数元素。
任何人都可以帮助并指出方向来帮助我解决这个问题吗?非常感激!
【问题讨论】:
-
如果您不提供a Minimal, Complete, and Verifiable example,您不应该期望得到太多帮助,另请参阅How do I ask a good question?。