Напишите метод режима в Java, чтобы найти наиболее часто встречающийся элемент в массиве

Вопрос идет:

Напишите метод с именем mode, который возвращает наиболее часто встречающийся элемент массива целых чисел. Предположим, что массив имеет по крайней мере один элемент, и что каждый элемент в массиве имеет значение от 0 до 100 включительно. Разорвите связи, выбрав меньшее значение.

Например, если переданный массив содержит значения {27, 15, 15, 11, 27}, ваш метод должен вернуть 15. (Подсказка: вы можете захотеть взглянуть на программу Tally ранее в этой главе, чтобы получить представление о Как решить эту проблему.)

Ниже мой код, который почти работает, за исключением одноэлементных массивов

public static int mode(int[] n)
{
    Arrays.sort(n);
    
    int count2 = 0;
    int count1 = 0;
    int pupular1 =0;
    int popular2 =0;


    for (int i = 0; i < n.length; i++)
    {
            pupular1 = n[i];
            count1 = 0;    //see edit

        for (int j = i + 1; j < n.length; j++)
        {
            if (pupular1 == n[j]) count1++;
        }

        if (count1 > count2)
        {
                popular2 = pupular1;
                count2 = count1;
        }

        else if(count1 == count2)
        {
            popular2 = Math.min(popular2, pupular1);
        }
    }

    return popular2;
}

редактироватьнаконец понял это. Измененоcount1 = 0; вcount1 = 1; все работает сейчас!

Ответы на вопрос(14)

Ваш ответ на вопрос