Кто-нибудь знает, как найти режимы в массиве, когда есть более одного режима? У меня есть этот код, который находит один режим. Но я имею дело с массивом, который имеет более одного режима, мультимодальный массив, и я должен печатать каждый режим ровно один раз. Вот мой код, может кто-нибудь мне помочь? Благодарю.Поиск режимов a a array
public static int mode(int a[])
{
int maxValue=0, maxCount=0;
for (int i = 0; i < a.length; ++i)
{
int count = 0;
for (int j = 0; j < a.length; ++j)
{
if (a[j] == a[i]) ++count;
}
if (count > maxCount)
{
maxCount = count;
maxValue = a[i];
}
}
return maxCount;
}
public static Integer[] modes(int a[])
{
List<Integer> modes = new ArrayList<Integer>();
int maxCount=0;
for (int i = 0; i < a.length; ++i)
{
int count = 0;
for(int j = 0; j < a.length; ++j)
{
if (a[j] == a[i]) ++count;
}
if (count > maxCount)
{
maxCount = count;
modes.clear();
modes.add(a[i]);
}
else if (count == maxCount)
{
modes.add(a[i]);
}
}
return modes.toArray(new Integer[modes.size()]);
}
Это домашнее задание? –
не очень, я программирую на веб-сайте в Интернете, и это одна из проблем. –
@ DanielFarmer Элементы вашего целочисленного массива имеют определенный диапазон значений, например arr [k] составляет от 1 до 100, или он может хранить любое целочисленное значение? –