public static int maxFrequencyNumber(int[] arr){
HashMap<Integer,Integer> m = new HashMap<>();
for(int i=0;i<arr.length;i++){
if(m.containsKey(arr[i]))
m.put(arr[i],m.get(arr[i])+1);
else
m.put(arr[i],1);
}
ArrayList<Integer> p = new ArrayList<>();
Set<Integer> s = m.keySet();
for(Integer i:s)
p.add(m.get(i));
Collections.sort(p);
for(Integer i:s){
if(m.get(i)==p.get(p.size()-1))
return i;
}
return 0;
}
Вам дан массив целых чисел, которые содержат числа в случайном порядке. Напишите программу для поиска и возврата числа, которое встречается максимальное количество раз в заданном входном сигнале.
Если два или более элемента конкурируют за максимальную частоту, сначала верните элемент, который встречается в массиве.
Я получаю правильный вывод, за исключением одного случая, когда все элементы в массиве имеют одинаковую частоту. Что не так?