【发布时间】:2017-02-12 23:27:11
【问题描述】:
我试图弄清楚我将如何找到未排序数组的模式,如果该未排序数组有一个模式开始,或者它有多个模式(即 2、2、3、 3,4,6,7,其中模式为 2 和 3)。
我试图弄清楚如何在不事先对数组进行排序的情况下做到这一点。
目前,我有这个:
int counter = 1;
int counterTwo = 0;
int mode = array[0];
for (int i = 0; i < SIZE - 1; i++)
{
if (array[i] == array[i + 1])
{
counter++;
if (counter > counterTwo)
{
counterTwo = counter;
mode = array[i];
}
else
{
counter = 1; // Reset counter
}
}
}
cout << "\nThe mode is: " << mode << endl;
哪种类型的工作但不能帮助我确定数组是否具有多个模式。当没有模式时,它只输出数组中的第一个值。
对此有任何帮助吗?提前谢谢你。
【问题讨论】:
-
使用std::adjacent_find函数。
标签: c++ arrays nested-loops