我试图找到在给定的 int 数组中出现最多的数字。这是我的代码,它可以工作,但有一些不一致之处。另外,如果你能让我知道如何让它变得更好,我认为我的代码太长了!!
public static int countOccurrences(int[] a, int x) {
int count = 0;
for(int i=0;i<a.length;i++) {
if(a[i] == x) count++;
}
return count;
}
public static int occursMostOften(int[] a) {
int[] count = new int[a.length];
boolean[] duplicate = new boolean[a.length];
for(int i = 0; i < a.length;i++) {
if(duplicate[i] != true) {
count[i] = countOccurrences(a,a[i]);
duplicate[i] = true;
}
}
return a[maxIndex(count)];
}
private static int maxIndex(int[] a) {
int max = 0;
for(int i = 1; i<a.length;i++) {
if(a[i-1]<a[i]) max = i;
}
return max;
}