Massima occorrenza in un array

di Anonimizzato30741 il
5 risposte
SOS PRINCIPIANTE PROGRAMMATORE
dato un array A=[0,0,1,1,1] devo restituire la massima occorrenza del numero che ricorre più volte nell'array cioè in questo caso 3.Come posso fare? devo fare un metodo java che faccia questo. Scusate ma sono alle prime armi.....

5 Risposte

  • merlino2015 ha scritto:


    SOS PRINCIPIANTE PROGRAMMATORE
    dato un array A=[0,0,1,1,1] devo restituire la massima occorrenza del numero che ricorre più volte nell'array cioè in questo caso 3.Come posso fare? devo fare un metodo java che faccia questo. Scusate ma sono alle prime armi.....
    Ci sono naturalmente più modi per arrivare alla soluzione. La questione semmai riguarda quello che puoi/sai o non puoi/sai usare. Hai facoltà di usare le collection? O devi poterlo risolvere solo usando dei cicli?

    Se si usano solo cicli, servono almeno 2 cicli annidati (un for dentro un for più esterno) e serve fare un minimo di ragionamento.

    L'array di esempio è banale perché tutto contiguo ma si presume che debba funzionare anche in qualunque altro caso, es. [0, 1, 0, 1, 1]
  • Si posso usare quello che voglio. se per ipotesi deve funzionare solo su un array con occorrenze tutte contigue questo che ho scritto potrebbe andare bene? ho provato a stampare sembra di si......spero:) grazie mille

    public class maxOcc {
    static int[] array = { 0, 0,1,1,1,2 };

    public static void main(String args[]) {
    int a=MAX(array);
    System.out.print(a);

    }
    public static int MAX(int [] a) {
    int contatore = 1;
    int max = 1;
    for (int i = 0; i < array.length-1; i++) {
    if (array == array[i + 1]) {
    contatore++;
    if (contatore > max) {
    max = contatore;
    }

    }
    else contatore=1;
    }
    return max;
    }
    }
    non so se potevo scrivere il codice così......devo rileggere il regolamento scusate se non va bene sono nuovo
  • Scusate non sono capace a formattare il codice non ho capito come si fa........
  • merlino2015 ha scritto:


    se per ipotesi deve funzionare solo su un array con occorrenze tutte contigue questo che ho scritto potrebbe andare bene?
    Sì, considerando e dando per scontato che valori uguali siano contigui, la logica è quella corretta. C'è però un caso particolare che non hai considerato: se l'array fosse "vuoto" (lunghezza 0), il ciclo for non esegue ma restituisci comunque 1 che non è coerente.

    merlino2015 ha scritto:


    non so se potevo scrivere il codice così......devo rileggere il regolamento scusate se non va bene sono nuovo
    Il codice, se già ben indentato, sarebbe da postare tra i tag [ code ] [ /code ] (senza spazi)
  • Ok grazie mille!
Devi accedere o registrarti per scrivere nel forum
5 risposte