Вы можете использовать хэш-таблицу с «номером в массиве» как ключ и «вхождение» в качестве значений.
Пример кода выглядеть так:
hashtable h;
for every entry in array
search hashtable
if present, increment num_occurrences
else, create new entry
Iterate over all the entries in hashtable and return one
with max num_occurrences
В поиске в хэш считается O (1), общая сложность будет O (п).
Особый случай этой проблемы заключается в том, когда числа в массиве находятся в заданном диапазоне, в этом случае берут еще один массив значений с максимальным значением в исходном массиве и используют индекс нового массива как ключ и число, хранящееся в этом массиве, как количество вхождений.
Возвращает индекс наибольшего значения в этом массиве.
Я неправильно понял вопрос. – Younes