如何计算一个数字在数组中出现的次数
How do I count the number of times a number appears in an array
我需要计算一个数字在长度为5的一维数组中出现的次数。我需要为9个不同的数字做这个。问题是,我不允许对数组进行排序,也不允许创建新数组并对其进行排序,或者比较模式1&2、1&3、1&4、1&5、2&3等等…我不允许使用任何外部函数,只能使用循环和条件语句。非常感谢。
例如,以下函数将不起作用,因为它使用了上述算法:
bool containsFourOfaKind(const int hand[])
{
int doesMatch = 0;
int x = 0;
for (; x < 9; x++)
{
for (int i = 0; i < 5; i++)
{
if (hand[i] == x)
doesMatch++;
}
}
}
- 制作另一个整数数组以保持计数
- 将计数数组的所有元素初始化为0
- 对于输入阵列中的每个数字,
- 使用输入数组中的数字作为计数数组的索引
- 增加此元素
计数数组现在包含输入数组中所有值的频率。