Я пытаюсь написать программу, в которой пользователь дает n чисел, и программа должна выяснить, какое число повторяется чаще всего.
например для чисел: 4 5 5 1 3 1 1 7 1 ответ 1
Кстати, я новичок, поэтому большинство ответов, которые уже были на сайте, меня не устраивали.
Я был бы очень благодарен.
Используйте хэш-карту (unordered_map
), чтобы посчитать вхождения чисел, а затем выполнить поиск максимального количества вхождений в хэш-карте.
Я думаю, что вы можете использовать приоритетную очередь, в которой будут храниться элементы {1,1,1,1,3,4,5,5,7}
а затем манипулировать режимом из этой очереди
Что вы, вероятно, хотели бы сделать, это вставить цифры в std::vector
использовать std::sort
(в <algorithm>
) и просмотрите его, чтобы увидеть, какое число встречается чаще всего.
Чтобы дать вам идею, вы можете использовать std::vector<int>::iterator
во время цикла (используйте auto
вместо этого) указать начало + 1 вектора, а затем проверить, равно ли значение, на которое указывает итератор,
iterator - 1
, Если текущее значение выше чем максимальное значение затем сохраните его вместе с итератором для этого объекта.
Надеюсь, что это поможет вам в пути.