Visualizzazione dei risultati da 1 a 10 su 12

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    347

    Trovare elemento più frequente in un array

    ciao, mi è capitato questo esercizio che chiede appunto di scrivere un metodo che trovi l'elemento più frequente in un array, allora ho provato così:
    codice:
     
    class OccorrenzaArray{
    	public static int occorrenza(int a[]){
    		int[] oc = new int[a.length];
    		for(int p=0; p<a.length; p++){
    			for(int i=0; i<a.length; i++){
    				if(a[p] == a[i]){
    					oc[p] = oc[p] + 1;
    				}
    			}
    		}
    		int max = oc[0];
    		for(int j=1; j<oc.length; j++){
    			if(oc[j]>oc[j-1])
    				max = j;
    		}
    		return a[max];
    	}
    }
    però il codice mi sembra un po pesante... come avreste fatto voi?
    (non sto chiedendo di farmi l'esercizio eh! l'ho fatto gia!)

  2. #2
    codice:
    static int mostRecurringElement(final int[] array) {
            int[] copia=Arrays.copyOf(array, array.length);
            Arrays.sort(copia);
            int valoreMaxOccorrenza=0;
            int maxOccorrenza=0;
            for (int i=0;i<copia.length;){
                int elementoCorrente= copia[i];
                int occorrenza=0;
                for (i++;i<copia.length && copia[i]==elementoCorrente;i++,occorrenza++);
                if (occorrenza>maxOccorrenza){
                    maxOccorrenza=occorrenza;
                    valoreMaxOccorrenza=elementoCorrente;
                }
            }
            return valoreMaxOccorrenza;
        }/*questa è la soluzione che ho usato io al secondo laboratorio di java*/

    /*non so come mantenere l'identazione scusate*/
    Ultima modifica di morpheus%; 31-03-2023 a 18:42

  3. #3
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    Quote Originariamente inviata da morpheus%
    /*non so come mantenere l'indentazione scusate*/
    ciao e benvenuto.
    quando posti codice ricorda di racchiuderlo nel tag CODE del forum,
    fa attenzione e non postare il codice colorato da altri editor.
    ti ho corretto il post.

    certamente apprezziamo il tuo impegno nel fornire una risposta alle questioni esposte,
    tieni comunque presente che (su questo forum) non usiamo riesumare thread defunti.
    questo thread è del 2012

    buon lavoro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.