Un array è una raccolta di elementi con gli stessi tipi di dati. È una struttura dati lineare ed è memorizzata in locazioni di memoria contigue. Puoi eseguire molte operazioni di base su un array come inserimento, cancellazione, ricerca, aggiornamento, attraversamento, ecc.

In questo articolo imparerai come rimuovere elementi duplicati da array ordinati e non ordinati.

Come rimuovere elementi duplicati da un array non ordinato

Dichiarazione problema

Ti viene assegnato un array non ordinato di numeri interi. È necessario rimuovere gli elementi duplicati dall'array e stampare l'array con elementi univoci.

Esempio 1: Sia arr = [23, 35, 23, 56, 67, 35, 35, 54, 76]

Array dopo aver rimosso gli elementi duplicati: 23 35 56 67 54 76

Pertanto, l'uscita è 23 35 56 67 54 76.

Esempio 2: Sia arr = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]

Array dopo aver rimosso gli elementi duplicati: 5 6 1 7 8 2

Quindi, l'uscita è 5 6 1 7 8 2.

Approccio per rimuovere elementi duplicati da un array non ordinato

Puoi rimuovere elementi duplicati da un array non ordinato seguendo l'approccio seguente:

  1. Inizializza una mappa hash che memorizzerà tutti gli elementi univoci dell'array.
  2. Attraversa la matrice.
  3. Controlla se l'elemento è presente nell'array.
  4. Se l'elemento è presente nell'array, continua ad attraversare.
  5. Se l'elemento non è presente nell'array, stampa l'elemento e memorizzalo nella mappa hash.

Nota: La complessità temporale di questa soluzione è O(n).

Programma C++ per rimuovere elementi duplicati da un array non ordinato

Di seguito è riportato il programma C++ per rimuovere elementi duplicati da un array non ordinato:

// Programma C++ per rimuovere elementi duplicati da un array non ordinato
#includere
usando lo spazio dei nomi std;
// Funzione per rimuovere elementi duplicati da un array non ordinato
void removeDuplicateElements (int arr[], int size)
{
unordered_map m;
per (int i=0; io{
// Stampa l'elemento se non lo è
// presente nella mappa hash
if (m.find (arr[i]) == m.end())
{
cout << arr[i] << " ";
}
// Inserisce l'elemento nella mappa hash
m[arr[i]] = vero;
}
cout<}
void printArrayElements (int arr[], int size)
{
per (int i=0; io{
cout << arr[i] << " ";
}
cout<}
intero principale()
{
int arr1[] = {23, 35, 23, 56, 67, 35, 35, 54, 76};
int size1 = sizeof (arr1)/sizeof (arr1[0]);
cout << "Array iniziale: " << endl;
printArrayElements (arr1, size1);
cout << "Array dopo aver rimosso i duplicati: " << endl;
removeDuplicateElements (arr1, size1);
int arr2[] = {5, 6, 1, 1, 7, 5, 8, 2, 7, 8};
int size2 = sizeof (arr2)/sizeof (arr2[0]);
cout << "Array iniziale: " << endl;
printArrayElements (arr2, size2);
cout << "Array dopo aver rimosso i duplicati: " << endl;
removeDuplicateElements (arr2, size2);
int arr3[] = {32, 35, 33, 32, 33, 38, 32, 39};
int size3 = sizeof (arr3)/sizeof (arr3[0]);
cout << "Array iniziale: " << endl;
printArrayElements (arr3, size3);
cout << "Array dopo aver rimosso i duplicati: " << endl;
removeDuplicateElements (arr3, size3);
restituisce 0;
}

Produzione:

Matrice iniziale: 
23 35 23 56 67 35 35 54 76
Array dopo aver rimosso i duplicati:
23 35 56 67 54 76
Matrice iniziale:
5 6 1 1 7 5 8 2 7 8
Array dopo aver rimosso i duplicati:
5 6 1 7 8 2
Matrice iniziale:
32 35 33 32 33 38 32 39
Array dopo aver rimosso i duplicati:
32 35 33 38 39

Relazionato: Come stampare "Hello, World!" nei linguaggi di programmazione più diffusi

Programma Python per rimuovere elementi duplicati da un array non ordinato

Di seguito è riportato il programma Python per rimuovere elementi duplicati da un array non ordinato:

# Programma Python per rimuovere elementi duplicati da un elenco non ordinato
def removeDuplicateElements (arr, size):
m = {}
per i nell'intervallo (dimensioni):
# Stampa l'elemento se non lo è
# presente nel dizionario
se arr[i] non in m:
print (arr[i], end = " ")
# Inserisci l'elemento nel dizionario
m[arr[i]] = 1
Stampa()
def printListElements (arr, size):
per i nell'intervallo (dimensioni):
print (arr[i], end=" ")
Stampa()
arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76]
taglia1 = lente (arr1)
print("Elenco iniziale: ")
printListElements (arr1, size1)
print("Elenco dopo aver rimosso i duplicati: ")
removeDuplicateElements (arr1, size1)
arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]
taglia2 = lente (arr2)
print("Elenco iniziale: ")
printListElements (arr2, size2)
print("Elenco dopo aver rimosso i duplicati: ")
removeDuplicateElements (arr2, size2)
arr3 = [32, 35, 33, 32, 33, 38, 32, 39]
taglia3 = lente (arr3)
print("Elenco iniziale: ")
printListElements (arr3, size3)
print("Elenco dopo aver rimosso i duplicati: ")
removeDuplicateElements (arr3, size3)

Produzione:

Matrice iniziale: 
23 35 23 56 67 35 35 54 76
Array dopo aver rimosso i duplicati:
23 35 56 67 54 76
Matrice iniziale:
5 6 1 1 7 5 8 2 7 8
Array dopo aver rimosso i duplicati:
5 6 1 7 8 2
Matrice iniziale:
32 35 33 32 33 38 32 39
Array dopo aver rimosso i duplicati:
32 35 33 38 39

Programma JavaScript per rimuovere elementi duplicati da un array non ordinato

Di seguito è riportato il programma JavaScript per rimuovere elementi duplicati da un array non ordinato:

// Programma JavaScript per rimuovere elementi duplicati da un array non ordinato
// Funzione per rimuovere elementi duplicati da un array non ordinato
funzione removeDuplicateElements (arr, size) {
let m = new Map();
per (lascia i = 0; io < taglia; io++) {
// Stampa l'elemento se non lo è
// presente nella mappa hash
if (m.get (arr[i]) == null) {
document.write (arr[i] + " ");
}
// Inserisce l'elemento nella mappa hash
m.set (arr[i], vero);
}
documento.write("
");
}
funzione printArrayElements (arr, size) {
per (sia i=0; iodocument.write (arr[i] + " ");
}
documento.write("
");
}
sia arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76];
let size1 = arr1.length;
document.write("Array iniziale: " + "
");
printArrayElements (arr1, size1);
document.write("Array dopo aver rimosso i duplicati: " + "
");
removeDuplicateElements (arr1, size1);
sia arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8];
let size2 = arr2.length;
document.write("Array iniziale: " + "
");
printArrayElements (arr2, size2);
document.write("Array dopo aver rimosso i duplicati: " + "
");
removeDuplicateElements (arr2, size2);
sia arr3 = [32, 35, 33, 32, 33, 38, 32, 39];
let size3 = arr3.length;
document.write("Array iniziale: " + "
");
printArrayElements (arr3, size3);
document.write("Array dopo aver rimosso i duplicati: " + "
");
removeDuplicateElements (arr3, size3);

Produzione:

Matrice iniziale: 
23 35 23 56 67 35 35 54 76
Array dopo aver rimosso i duplicati:
23 35 56 67 54 76
Matrice iniziale:
5 6 1 1 7 5 8 2 7 8
Array dopo aver rimosso i duplicati:
5 6 1 7 8 2
Matrice iniziale:
32 35 33 32 33 38 32 39
Array dopo aver rimosso i duplicati:
32 35 33 38 39

Relazionato: Come contare le occorrenze di un dato carattere in una stringa

Come rimuovere elementi duplicati da un array ordinato

Dichiarazione problema

Ti viene assegnato un array ordinato di numeri interi. È necessario rimuovere gli elementi duplicati dall'array e stampare l'array con elementi univoci.

Esempio 1: Sia arr = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]

Array dopo aver rimosso gli elementi duplicati: 1 2 4 6 8 9

Quindi, l'uscita è 1 2 4 6 8 9.

Esempio 2: Sia arr = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]

Array dopo aver rimosso gli elementi duplicati: 1 2 3 4 5

Quindi, l'output è 1 2 3 4 5.

Approccio per rimuovere elementi duplicati da un array ordinato

Puoi rimuovere elementi duplicati da un array ordinato seguendo l'approccio seguente:

  1. Inizializza le variabili indice i e j con 0.
  2. Iterare l'array.
  3. Se l'elemento i-esimo non è uguale all'elemento (i+1)esimo, allora memorizza il valore i-esimo in arr[j] e incrementa il valore di j.
  4. Incrementa il valore di i in ogni iterazione.
  5. Memorizza l'ultimo valore di arr in arr[j].
  6. Infine restituisci la nuova dimensione dell'array, ad esempio j. Gli elementi univoci verranno archiviati nell'array dall'indice 0 a j-1.

Nota: La complessità temporale di questa soluzione è O(n).

Programma C++ per rimuovere elementi duplicati da un array ordinato

Di seguito è riportato il programma C++ per rimuovere elementi duplicati da un array ordinato:

// Programma C++ per rimuovere elementi duplicati da un array ordinato
#includere
usando lo spazio dei nomi std;
// Funzione per rimuovere elementi duplicati da un array ordinato
int removeDuplicateElements (int arr[], int size)
{
intj = 0;
per (int i = 0; io < taglia-1; io++)
{
// Se i-esimo elemento non è uguale a (i+1)esimo elemento,
// quindi memorizza il valore i-esimo in arr[j]
if (arr[i] != arr[i+1])
{
arr[j] = arr[i];
j++;
}
}
// Memorizzazione dell'ultimo valore di arr in arr[j]
arr[j++] = arr[dimensione-1];
restituire j;
}
void printArrayElements (int arr[], int size)
{
per (int i=0; io{
cout << arr[i] << " ";
}
cout<}
intero principale()
{
int arr1[] = {1, 1, 1, 2, 4, 6, 8, 8, 9, 9};
int size1 = sizeof (arr1)/sizeof (arr1[0]);
cout << "Array iniziale: " << endl;
printArrayElements (arr1, size1);
cout << "Array dopo aver rimosso i duplicati: " << endl;
size1 = removeDuplicateElements (arr1, size1);
printArrayElements (arr1, size1);
int arr2[] = {1, 1, 2, 2, 3, 3, 4, 4, 5, 5};
int size2 = sizeof (arr2)/sizeof (arr2[0]);
cout << "Array iniziale: " << endl;
printArrayElements (arr2, size2);
cout << "Array dopo aver rimosso i duplicati: " << endl;
size2 = removeDuplicateElements (arr2, size2);
printArrayElements (arr2, size2);
int arr3[] = {10, 12, 12, 14, 16, 16, 18, 19, 19};
int size3 = sizeof (arr3)/sizeof (arr3[0]);
cout << "Array iniziale: " << endl;
printArrayElements (arr3, size3);
cout << "Array dopo aver rimosso i duplicati: " << endl;
size3 = removeDuplicateElements (arr3, size3);
printArrayElements (arr3, size3);
restituisce 0;
}

Produzione:

Matrice iniziale: 
1 1 1 2 4 6 8 8 9 9
Array dopo aver rimosso i duplicati:
1 2 4 6 8 9
Matrice iniziale:
1 1 2 2 3 3 4 4 5 5
Array dopo aver rimosso i duplicati:
1 2 3 4 5
Matrice iniziale:
10 12 12 14 16 16 18 19 19
Array dopo aver rimosso i duplicati:
10 12 14 16 18 19

Programma Python per rimuovere elementi duplicati da un array ordinato

Di seguito è riportato il programma Python per rimuovere elementi duplicati da un array ordinato:

# Programma Python per rimuovere elementi duplicati da un array ordinato
def removeDuplicateElements (arr, size):
j = 0
per i nell'intervallo (taglia-1):
se arr[i] != arr[i+1]:
arr[j] = arr[i]
j = j+1
arr[j] = arr[dimensione-1]
j = j+1
tornare j
def printListElements (arr, size):
per i nell'intervallo (dimensioni):
print (arr[i], end=" ")
Stampa()
arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]
taglia1 = lente (arr1)
print("Array iniziale:")
printListElements (arr1, size1)
print("Array dopo aver rimosso i duplicati:")
size1 = removeDuplicateElements (arr1, size1)
printListElements (arr1, size1)
arr2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
taglia2 = lente (arr2)
print("Array iniziale:")
printListElements (arr2, size2)
print("Array dopo aver rimosso i duplicati:")
size2 = removeDuplicateElements (arr2, size2)
printListElements (arr2, size2)
arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19]
taglia3 = lente (arr3)
print("Array iniziale:")
printListElements (arr3, size3)
print("Array dopo aver rimosso i duplicati:")
size3 = removeDuplicateElements (arr3, size3)
printListElements (arr3, size3)

Produzione:

Matrice iniziale: 
1 1 1 2 4 6 8 8 9 9
Array dopo aver rimosso i duplicati:
1 2 4 6 8 9
Matrice iniziale:
1 1 2 2 3 3 4 4 5 5
Array dopo aver rimosso i duplicati:
1 2 3 4 5
Matrice iniziale:
10 12 12 14 16 16 18 19 19
Array dopo aver rimosso i duplicati:
10 12 14 16 18 19

Relazionato: Introduzione all'algoritmo Merge Sort

Programma JavaScript per rimuovere elementi duplicati da un array ordinato

Di seguito è riportato il programma JavaScript per rimuovere elementi duplicati da un array ordinato:

// Programma JavaScript per rimuovere elementi duplicati da un array ordinato
// Funzione per rimuovere elementi duplicati da un array ordinato
funzione removeDuplicateElements (arr, size)
{
sia j = 0;
per (lascia i = 0; io < taglia-1; io++)
{
// Se i-esimo elemento non è uguale a (i+1)esimo elemento,
// quindi memorizza il valore i-esimo in arr[j]
if (arr[i] != arr[i+1])
{
arr[j] = arr[i];
j++;
}
}
// Memorizzazione dell'ultimo valore di arr in arr[j]
arr[j++] = arr[dimensione-1];
restituire j;
}
funzione printArrayElements (arr, size) {
per (sia i=0; iodocument.write (arr[i] + " ");
}
documento.write("
");
}
var arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9];
var dimensione1 = arr1.lunghezza;
document.write("Array iniziale: " + "
");
printArrayElements (arr1, size1);
document.write("Array dopo aver rimosso i duplicati: " + "
");
size1 = removeDuplicateElements (arr1, size1);
printArrayElements (arr1, size1);
var arr2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5];
var size2 = arr2.length;
document.write("Array iniziale: " + "
");
printArrayElements (arr2, size2);
document.write("Array dopo aver rimosso i duplicati: " + "
");
size2 = removeDuplicateElements (arr2, size2);
printArrayElements (arr2, size2);
var arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19];
var size3 = arr3.length;
document.write("Array iniziale: " + "
");
printArrayElements (arr3, size3);
document.write("Array dopo aver rimosso i duplicati: " + "
");
size3 = removeDuplicateElements (arr3, size3);
printArrayElements (arr3, size3);

Produzione:

Relazionato: Come trovare il carattere che ricorre più frequentemente in una stringa

Matrice iniziale: 
1 1 1 2 4 6 8 8 9 9
Array dopo aver rimosso i duplicati:
1 2 4 6 8 9
Matrice iniziale:
1 1 2 2 3 3 4 4 5 5
Array dopo aver rimosso i duplicati:
1 2 3 4 5
Matrice iniziale:
10 12 12 14 16 16 18 19 19
Array dopo aver rimosso i duplicati:
10 12 14 16 18 19

Esercitati con problemi di stringhe e array per la tua prossima intervista

I problemi di stringhe e array sono tra gli argomenti più richiesti nelle interviste tecniche.

Se stai cercando di essere il più preparato possibile, devi esercitarti su alcuni problemi comuni come verificare se una stringa è palindroma, come verificare se un anagramma, trovare il carattere più frequente in una stringa, come invertire un array, algoritmi di ordinamento e ricerca basati su array, come invertire una stringa, eccetera.

E-mail
Come invertire una stringa in C++, Python e JavaScript

Impara come invertire una stringa in tre lingue diverse.

Leggi Avanti

Argomenti correlati
  • Programmazione
  • JavaScript
  • Pitone
  • Tutorial sulla programmazione
Circa l'autore
Yuvraj Chandra (40 articoli pubblicati)

Yuvraj è uno studente universitario di Informatica presso l'Università di Delhi, in India. È appassionato di sviluppo Web Full Stack. Quando non scrive, esplora la profondità di diverse tecnologie.

Altro da Yuvraj Chandra

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti