Я хотел бы начать, пытаясь решить более простую версию проблемы первой и пытаюсь распространить ее решить всю проблему.
Я хотел бы попытаться получить частоту цифр из одного целого числа первых, которые в значительной степени позволит решить остальную часть вашей проблемы, что-то вроде
public static int maxFrequency(int number){
int[] array = new int[(number)+"".length()];
int max = 0;
while(number != 0){
array[number%10] += 1
if(max < array[number%10]){
max = array[number%10];
}
number = number/10;
}
return max;
}
Тогда я хотел бы использовать этот метод, чтобы распространить его на все элементы в массиве и выбрать самый большой.
int[] a = {4758322, 10000 , 5748883 ,2754331};
int max = 0;
int target = 0;
for(int i : a){
int maxFrequencyi = maxFrequency(i);
if(max < maxFrequencyi){
max = maxFrequencyi;
target = i;
}
}
return target;
Не могли бы вы показать нам какой-то код, который вы пробовали? –
Я не понимаю, не могли бы вы привести больше примеров и объяснить их? В вашем примере столько же, сколько 3 или 8. – sp00m
Да, если вы посмотрите на пример, вы увидите, что цифра 0 наиболее часто встречается в массиве, а цифра находится внутри номера 10000, из-за этого программа возвращает номер 10000. – user2986655