Napisz metodę trybu w Javie, aby znaleźć najczęściej występujący element w tablicy
Pytanie brzmi:
Napisz metodę zwaną trybem, która zwraca najczęściej występujący element tablicy liczb całkowitych. Załóżmy, że tablica zawiera co najmniej jeden element i że każdy element tablicy ma wartość od 0 do 100 włącznie. Przerwij krawaty, wybierając niższą wartość.
Na przykład, jeśli przekazana tablica zawiera wartości {27, 15, 15, 11, 27}, metoda powinna zwrócić 15. (Podpowiedź: Możesz przyjrzeć się programowi Tally z wcześniejszego rozdziału, aby dowiedzieć się o jak rozwiązać ten problem.)
Poniżej znajduje się mój kod, który prawie działa, z wyjątkiem jednowierszowych tablic
public static int mode(int[] n)
{
Arrays.sort(n);
int count2 = 0;
int count1 = 0;
int pupular1 =0;
int popular2 =0;
for (int i = 0; i < n.length; i++)
{
pupular1 = n[i];
count1 = 0; //see edit
for (int j = i + 1; j < n.length; j++)
{
if (pupular1 == n[j]) count1++;
}
if (count1 > count2)
{
popular2 = pupular1;
count2 = count1;
}
else if(count1 == count2)
{
popular2 = Math.min(popular2, pupular1);
}
}
return popular2;
}
Edytować: w końcu to zrozumiał. Zmienionocount1 = 0;
docount1 = 1;
wszystko działa teraz!