Проблема:
Вам дан массив целых чисел, которые содержат числа в случайном порядке. Напишите программу для поиска и возврата числа, которое встречается максимальное количество раз в заданном входном сигнале.
Если два или более элемента конкурируют за максимальную частоту, сначала верните элемент, который встречается в массиве.
Формат ввода:
Строка 1: целое число N, т.е. размер массива
Строка 2: N целых чисел, являющихся элементами массива, разделенных пробелами
Формат вывода:
Наиболее частый элемент
Ограничения:
0 <= N <= 10 ^ 8 </p>
Пример ввода 1:
13
2 12 2 11 12 2 1 2 2 11 12 2 6
Пример Выход 1:
2
Вывод неверный, скажите, пожалуйста, что не так. Вот код:
#include <unordered_map>
using namespace std;
int highestFrequency(int *input, int n){
unordered_map<int, int> map;
int maxFreq = 0;
for(int i = 0; i < n; i++){
if(map.count(input[i]) > 0){
map[input[i]]++;
if(map[input[i]] > maxFreq){
maxFreq = map[input[i]];
}
}
map[input[i]] = 1;
}
for(int i = 0; i < n; i++){
if(map[input[i]] == maxFreq){
cout << input[i];
}
}
/* Don't write main().
* the input array is already passed as function argument.
* Taking input and printing output is handled automatically.
*/
}