Buonasera, devo svolgere questo esercizio ma mi sono bloccata sul primo, sul secondo e sull'ultimo passaggio (qui di seguito vi riporto il testo e il programma da me fin ora svolto):
Scrivere un metodo
static int[] piuFrequente (int[] a)
che preso come parametro un array a di numeri interi, restituisce un array di int (della opportuna lunghezza) contenente tutti e soli i valori di a aventi massima frequenza
Ad esempio, se a={1, 16, 10, 4, 16, 5, 16} viene restituito {16};
se a={1, 16, 10, 1, 16, 1, 16} viene restituito {1,16}
se a=null viene restituito null;
se a={} viene restituito {}.
public class Main {
int[] a= {1, 12, 25, 9, 25, 30, 7, 25, 1, 3};
static int piuFrequente (int[] a) {
if (a==null || a.length==0) {
return 0;
}
}
}
/*
* scrivere un metodo piuFrequente che preso un array di numeri
* interi, restituisce uno degli elementi aventi massima
* frequenza
* es: se a={1, 16, 10, 4, 16, 5, 16} viene restituito 16
*/
static int piuFrequente (int[] a) {
if (a==null || a.length==0) {
return 0;//un valore devo restituirlo per forza
}
int ris=987;
int maxConto=0;
for (int i=0; i<a.length; i++) {
int conto=1;
for (int j=i+1; j<a.length; j++) {
if (a[i]==a[j]) {
conto++;
}
}
if (conto>maxConto) {
maxConto=conto;
ris=a[i];
}
}
return ris;
}
[\code]