2013-11-13 2 views
0

У меня есть этот массив, например:Как найти наиболее часто цифры в массиве и распечатать его

|4758322| 10000 | 5748883 |2754331| 

и мне нужно, чтобы вернуть Num в массиве, с наиболее частой цифрой. В этом примере метод вернет 10000. Кто-то может мне помочь? Я застрял и не знаю, с чего начать.

спасибо!

+7

Не могли бы вы показать нам какой-то код, который вы пробовали? –

+0

Я не понимаю, не могли бы вы привести больше примеров и объяснить их? В вашем примере столько же, сколько 3 или 8. – sp00m

+0

Да, если вы посмотрите на пример, вы увидите, что цифра 0 наиболее часто встречается в массиве, а цифра находится внутри номера 10000, из-за этого программа возвращает номер 10000. – user2986655

ответ

3

Поскольку вы не предоставили код. Поэтому я тоже не буду писать.
Try выполнив следующие действия:

Для каждого числа в массиве получить недо значение по модулю 10 равно нулю. у вас будет int. Итак, подсчитайте количество раз, когда каждая цифра отображается в номере . Храните самый высокий счет. повторите процедуру для других номеров. И сравните подсчеты для каждого. Наконец отображать числа с самым высокими подсчетами

0

Я хотел бы начать, пытаясь решить более простую версию проблемы первой и пытаюсь распространить ее решить всю проблему.

Я хотел бы попытаться получить частоту цифр из одного целого числа первых, которые в значительной степени позволит решить остальную часть вашей проблемы, что-то вроде

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; 
+0

спасибо! Вы мне очень помогли ! – user2986655

+0

Похоже, что вы новичок, в следующий раз попробуйте работать над ним и используйте Google для поиска идей, а затем опубликуйте фрагмент кода в вопросе, если вы все еще не можете решить проблему, которая бы сказала людям, что вы пытались решить проблему проблемы и помочь людям лучше понять проблему. – phntmasasin

Смежные вопросы