altrimenti, utilizzando un array d'appoggio, qualcosa del genere:
codice:// se l'array è ordinato. Altrimenti conviene ordinarlo, per mantenere la complessità //dell'algoritmo lineare. int[] a = {0,0,1,1,2,2,3,4,5,6,6,7,7,10 }; int[] b = new int[a.length]; // in ogni caso, il primo elemento di a sarà presente // nell'array dei non duplicati. Lo aggiungiamo e facciamo i conti // a partire della posizione successiva b[0] = a[0]; // counter tiene conto di quanti elementi diversi ci sono int counter = 1; // cicliamo su tutti gli elementi di a for (int i = 0; i < a.length; i++) { // se l'elemento ultimo inserito in b è diverso dall'elemento corrente di a // allora inseriamo tale elemento in b ed aumentiamo il contantore if (b[counter-1] != a[i]) { b[counter] = a[i]; counter++; } } // questo serve solo a ripulire l'eventuale output. int[] v = new int[counter]; for (int i = 0; i < v.length; i++) { v[i] = b[i]; System.out.println(v[i]); }

Rispondi quotando