我有这个数组,例如:
|4758322| 10000 | 5748883 |2754331|
我需要返回数字最频繁的数组中的num。 在此示例中,该方法将返回10000。 有人可以帮帮我吗?我被困住了,不知道怎么开始。
谢谢!
答案 0 :(得分:3)
由于您没有提供代码。所以我也不会写它。
尝试执行以下操作:
对于数组中的每个数字,取模数10直到0为零。 你会有一个int。因此,计算出每个数字的次数 在号码。存储最高计数。重复这个程序 其他数字。并比较每个的计数。最后展示了 数量最多的数字
答案 1 :(得分: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;