Un tableau est une collection d'éléments avec les mêmes types de données. C'est une structure de données linéaire et est stockée dans des emplacements de mémoire contigus. Vous pouvez effectuer de nombreuses opérations de base sur un tableau telles que l'insertion, la suppression, la recherche, la mise à jour, la traversée, etc.

Dans cet article, vous apprendrez à supprimer les éléments en double des tableaux triés et non triés.

Comment supprimer les éléments en double d'un tableau non trié

Énoncé du problème

On vous donne un tableau non trié d'entiers. Vous devez supprimer les éléments en double du tableau et imprimer le tableau avec des éléments uniques.

Exemple 1: Soit arr = [23, 35, 23, 56, 67, 35, 35, 54, 76]

Tableau après suppression des éléments en double: 23 35 56 67 54 76

Ainsi, la sortie est de 23 35 56 67 54 76.

Exemple 2: Soit arr = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]

Tableau après suppression des éléments en double: 5 6 1 7 8 2

Ainsi, la sortie est 5 6 1 7 8 2.

Approche pour supprimer les éléments en double d'un tableau non trié

instagram viewer

Vous pouvez supprimer les éléments en double d'un tableau non trié en suivant l'approche ci-dessous:

  1. Initialisez une carte de hachage qui stockera tous les éléments uniques du tableau.
  2. Parcourez le tableau.
  3. Vérifiez si l'élément est présent dans le tableau.
  4. Si l'élément est présent dans le tableau, continuez à parcourir.
  5. Si l'élément n'est pas présent dans le tableau, imprimez l'élément et stockez-le dans la carte de hachage.

Noter: La complexité en temps de cette solution est O(n).

Programme C++ pour supprimer les éléments en double d'un tableau non trié

Vous trouverez ci-dessous le programme C++ pour supprimer les éléments en double d'un tableau non trié:

// Programme C++ pour supprimer les éléments en double d'un tableau non trié
#comprendre
en utilisant l'espace de noms std ;
// Fonction pour supprimer les éléments en double d'un tableau non trié
void removeDuplicateElements (int arr[], int size)
{
unordered_map m;
pour (entier i=0; je{
// Affiche l'élément si ce n'est pas le cas
// présent dans la carte de hachage
if (m.find (arr[i]) == m.end())
{
cout << arr[i] << " " ;
}
// Insertion de l'élément dans la table de hachage
m[arr[i]] = vrai;
}
cout << endl;
}
void printArrayElements (int arr[], int size)
{
pour (entier i=0; je{
cout << arr[i] << " " ;
}
cout << endl;
}
int main()
{
int arr1[] = {23, 35, 23, 56, 67, 35, 35, 54, 76} ;
int size1 = sizeof (arr1)/sizeof (arr1[0]);
cout << « Tableau initial: » << endl ;
printArrayElements (arr1, size1) ;
cout << "Tableau après suppression des doublons: " << endl;
removeDuplicateElements (arr1, size1) ;
int arr2[] = {5, 6, 1, 1, 7, 5, 8, 2, 7, 8} ;
int size2 = sizeof (arr2)/sizeof (arr2[0]);
cout << « Tableau initial: » << endl ;
printArrayElements (arr2, size2) ;
cout << "Tableau après suppression des doublons: " << endl;
removeDuplicateElements (arr2, size2) ;
int arr3[] = {32, 35, 33, 32, 33, 38, 32, 39} ;
int size3 = sizeof (arr3)/sizeof (arr3[0]);
cout << « Tableau initial: » << endl ;
printArrayElements (arr3, size3) ;
cout << "Tableau après suppression des doublons: " << endl;
removeDuplicateElements (arr3, size3) ;
renvoie 0 ;
}

Production:

Tableau initial: 
23 35 23 56 67 35 35 54 76
Tableau après suppression des doublons:
23 35 56 67 54 76
Tableau initial:
5 6 1 1 7 5 8 2 7 8
Tableau après suppression des doublons:
5 6 1 7 8 2
Tableau initial:
32 35 33 32 33 38 32 39
Tableau après suppression des doublons:
32 35 33 38 39

En rapport: Comment imprimer "Hello, World!" dans les langages de programmation les plus populaires

Programme Python pour supprimer les éléments en double d'un tableau non trié

Vous trouverez ci-dessous le programme Python pour supprimer les éléments en double d'un tableau non trié:

# Programme Python pour supprimer les éléments en double d'une liste non triée
def removeDuplicateElements (arr, taille):
m = {}
pour i dans la plage (taille):
# Affiche l'élément s'il ne l'est pas
# présent dans le dictionnaire
si arr[i] pas dans m :
print (arr[i], end = " ")
# Insérer l'élément dans le dictionnaire
m[arr[i]] = 1
imprimer()
def printListElements (arr, taille):
pour i dans la plage (taille):
print (arr[i], end=" ")
imprimer()
arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76]
taille1 = longueur (arr1)
print("Liste initiale: ")
printListElements (arr1, size1)
print("Liste après suppression des doublons: ")
removeDuplicateElements (arr1, size1)
arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]
size2 = len (arr2)
print("Liste initiale: ")
printListElements (arr2, size2)
print("Liste après suppression des doublons: ")
removeDuplicateElements (arr2, size2)
arr3 = [32, 35, 33, 32, 33, 38, 32, 39]
size3 = len (arr3)
print("Liste initiale: ")
printListElements (arr3, size3)
print("Liste après suppression des doublons: ")
removeDuplicateElements (arr3, size3)

Production:

Tableau initial: 
23 35 23 56 67 35 35 54 76
Tableau après suppression des doublons:
23 35 56 67 54 76
Tableau initial:
5 6 1 1 7 5 8 2 7 8
Tableau après suppression des doublons:
5 6 1 7 8 2
Tableau initial:
32 35 33 32 33 38 32 39
Tableau après suppression des doublons:
32 35 33 38 39

Programme JavaScript pour supprimer les éléments en double d'un tableau non trié

Vous trouverez ci-dessous le programme JavaScript pour supprimer les éléments en double d'un tableau non trié:

// Programme JavaScript pour supprimer les éléments en double d'un tableau non trié
// Fonction pour supprimer les éléments en double d'un tableau non trié
fonction removeDuplicateElements (arr, taille) {
let m = new Map();
pour (soit i = 0; je < taille; i++) {
// Affiche l'élément si ce n'est pas le cas
// présent dans la carte de hachage
if (m.get (arr[i]) == null) {
document.write (arr[i] + " ");
}
// Insertion de l'élément dans la table de hachage
m.set (arr[i], vrai);
}
document.write("
");
}
function printArrayElements (arr, size) {
pour (soit i=0; jedocument.write (arr[i] + " ");
}
document.write("
");
}
soit arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76];
let size1 = arr1.length;
document.write("Tableau initial: " + "
");
printArrayElements (arr1, size1) ;
document.write("Tableau après suppression des doublons: " + "
");
removeDuplicateElements (arr1, size1) ;
soit arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8];
let size2 = arr2.length;
document.write("Tableau initial: " + "
");
printArrayElements (arr2, size2) ;
document.write("Tableau après suppression des doublons: " + "
");
removeDuplicateElements (arr2, size2) ;
soit arr3 = [32, 35, 33, 32, 33, 38, 32, 39];
let size3 = arr3.length;
document.write("Tableau initial: " + "
");
printArrayElements (arr3, size3) ;
document.write("Tableau après suppression des doublons: " + "
");
removeDuplicateElements (arr3, size3) ;

Production:

Tableau initial: 
23 35 23 56 67 35 35 54 76
Tableau après suppression des doublons:
23 35 56 67 54 76
Tableau initial:
5 6 1 1 7 5 8 2 7 8
Tableau après suppression des doublons:
5 6 1 7 8 2
Tableau initial:
32 35 33 32 33 38 32 39
Tableau après suppression des doublons:
32 35 33 38 39

En rapport: Comment compter les occurrences d'un caractère donné dans une chaîne

Comment supprimer les éléments en double d'un tableau trié

Énoncé du problème

On vous donne un tableau trié d'entiers. Vous devez supprimer les éléments en double du tableau et imprimer le tableau avec des éléments uniques.

Exemple 1: Soit arr = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]

Tableau après suppression des éléments en double: 1 2 4 6 8 9

Ainsi, la sortie est 1 2 4 6 8 9.

Exemple 2: Soit arr = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]

Tableau après suppression des éléments en double: 1 2 3 4 5

Ainsi, la sortie est 1 2 3 4 5.

Approche pour supprimer les éléments en double d'un tableau trié

Vous pouvez supprimer les éléments en double d'un tableau trié en suivant l'approche ci-dessous:

  1. Initialisez les variables d'index i et j avec 0.
  2. Itérer le tableau.
  3. Si le ième élément n'est pas égal au (i+1)ième élément, alors stockez la ième valeur dans arr[j] et incrémentez la valeur de j.
  4. Incrémentez la valeur de i à chaque itération.
  5. Stockez la dernière valeur de arr dans arr[j].
  6. Enfin, retournez la nouvelle taille du tableau, c'est-à-dire j. Les éléments uniques seront stockés dans le tableau de l'index 0 à j-1.

Noter: La complexité en temps de cette solution est O(n).

Programme C++ pour supprimer les éléments en double d'un tableau trié

Vous trouverez ci-dessous le programme C++ pour supprimer les éléments en double d'un tableau trié:

// Programme C++ pour supprimer les éléments en double d'un tableau trié
#comprendre
en utilisant l'espace de noms std ;
// Fonction pour supprimer les éléments en double d'un tableau trié
int removeDuplicateElements (int arr[], int taille)
{
entier j = 0;
pour (entier i = 0; i < taille-1; i++)
{
// Si le ième élément n'est pas égal au (i+1)ième élément,
// puis stocke la ième valeur dans arr[j]
si (arr[i] != arr[i+1])
{
arr[j] = arr[i];
j++;
}
}
// Stockage de la dernière valeur de arr dans arr[j]
arr[j++] = arr[taille-1];
retour j;
}
void printArrayElements (int arr[], int size)
{
pour (entier i=0; je{
cout << arr[i] << " " ;
}
cout << endl;
}
int main()
{
int arr1[] = {1, 1, 1, 2, 4, 6, 8, 8, 9, 9} ;
int size1 = sizeof (arr1)/sizeof (arr1[0]);
cout << « Tableau initial: » << endl ;
printArrayElements (arr1, size1) ;
cout << "Tableau après suppression des doublons: " << 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 << « Tableau initial: » << endl ;
printArrayElements (arr2, size2) ;
cout << "Tableau après suppression des doublons: " << 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 << « Tableau initial: » << endl ;
printArrayElements (arr3, size3) ;
cout << "Tableau après suppression des doublons: " << endl;
size3 = removeDuplicateElements (arr3, size3) ;
printArrayElements (arr3, size3) ;
renvoie 0 ;
}

Production:

Tableau initial: 
1 1 1 2 4 6 8 8 9 9
Tableau après suppression des doublons:
1 2 4 6 8 9
Tableau initial:
1 1 2 2 3 3 4 4 5 5
Tableau après suppression des doublons:
1 2 3 4 5
Tableau initial:
10 12 12 14 16 16 18 19 19
Tableau après suppression des doublons:
10 12 14 16 18 19

Programme Python pour supprimer les éléments en double d'un tableau trié

Vous trouverez ci-dessous le programme Python pour supprimer les éléments en double d'un tableau trié:

# Programme Python pour supprimer les éléments en double d'un tableau trié
def removeDuplicateElements (arr, taille):
j = 0
pour i dans la gamme (taille-1) :
si arr[i] != arr[i+1] :
arr[j] = arr[i]
j = j+1
arr[j] = arr[taille-1]
j = j+1
retour j
def printListElements (arr, taille):
pour i dans la plage (taille):
print (arr[i], end=" ")
imprimer()
arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]
taille1 = longueur (arr1)
print("Tableau initial :")
printListElements (arr1, size1)
print("Tableau après suppression des doublons :")
size1 = removeDuplicateElements (arr1, size1)
printListElements (arr1, size1)
arr2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
size2 = len (arr2)
print("Tableau initial :")
printListElements (arr2, size2)
print("Tableau après suppression des doublons :")
size2 = removeDuplicateElements (arr2, size2)
printListElements (arr2, size2)
arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19]
size3 = len (arr3)
print("Tableau initial :")
printListElements (arr3, size3)
print("Tableau après suppression des doublons :")
size3 = removeDuplicateElements (arr3, size3)
printListElements (arr3, size3)

Production:

Tableau initial: 
1 1 1 2 4 6 8 8 9 9
Tableau après suppression des doublons:
1 2 4 6 8 9
Tableau initial:
1 1 2 2 3 3 4 4 5 5
Tableau après suppression des doublons:
1 2 3 4 5
Tableau initial:
10 12 12 14 16 16 18 19 19
Tableau après suppression des doublons:
10 12 14 16 18 19

En rapport: Une introduction à l'algorithme de tri par fusion

Programme JavaScript pour supprimer les éléments en double d'un tableau trié

Vous trouverez ci-dessous le programme JavaScript pour supprimer les éléments en double d'un tableau trié:

// Programme JavaScript pour supprimer les éléments en double d'un tableau trié
// Fonction pour supprimer les éléments en double d'un tableau trié
fonction removeDuplicateElements (arr, taille)
{
soit j = 0 ;
pour (soit i = 0; i < taille-1; i++)
{
// Si le ième élément n'est pas égal au (i+1)ième élément,
// puis stocke la ième valeur dans arr[j]
si (arr[i] != arr[i+1])
{
arr[j] = arr[i];
j++;
}
}
// Stockage de la dernière valeur de arr dans arr[j]
arr[j++] = arr[taille-1];
retour j;
}
function printArrayElements (arr, size) {
pour (soit i=0; jedocument.write (arr[i] + " ");
}
document.write("
");
}
var arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9] ;
var size1 = arr1.length;
document.write("Tableau initial: " + "
");
printArrayElements (arr1, size1) ;
document.write("Tableau après suppression des doublons: " + "
");
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("Tableau initial: " + "
");
printArrayElements (arr2, size2) ;
document.write("Tableau après suppression des doublons: " + "
");
size2 = removeDuplicateElements (arr2, size2) ;
printArrayElements (arr2, size2) ;
var arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19] ;
var size3 = arr3.length;
document.write("Tableau initial: " + "
");
printArrayElements (arr3, size3) ;
document.write("Tableau après suppression des doublons: " + "
");
size3 = removeDuplicateElements (arr3, size3) ;
printArrayElements (arr3, size3) ;

Production:

En rapport: Comment trouver le caractère le plus fréquent dans une chaîne

Tableau initial: 
1 1 1 2 4 6 8 8 9 9
Tableau après suppression des doublons:
1 2 4 6 8 9
Tableau initial:
1 1 2 2 3 3 4 4 5 5
Tableau après suppression des doublons:
1 2 3 4 5
Tableau initial:
10 12 12 14 16 16 18 19 19
Tableau après suppression des doublons:
10 12 14 16 18 19

Entraînez-vous aux problèmes de chaîne et de tableau pour votre prochaine entrevue

Les problèmes de chaîne et de tableau sont parmi les sujets les plus demandés dans les entretiens techniques.

Si vous cherchez à être aussi préparé que possible, vous devez vous entraîner à certains problèmes fréquemment posés comme comment vérifier si une chaîne est un palindrome, comment vérifier si une chaîne est une anagramme, trouver le caractère le plus fréquent dans une chaîne, comment inverser un tableau, trier et rechercher des algorithmes basés sur des tableaux, comment inverser une chaîne, etc.

E-mail
Comment inverser une chaîne en C++, Python et JavaScript

Apprenez à inverser une chaîne à l'envers dans trois langues différentes.

Lire la suite

Rubriques connexes
  • Programmation
  • JavaScript
  • Python
  • Tutoriels de codage
A propos de l'auteur
Yuvraj Chandra (40 articles publiés)

Yuvraj est un étudiant de premier cycle en informatique à l'Université de Delhi, en Inde. Il est passionné par le développement Web Full Stack. Quand il n'écrit pas, il explore la profondeur de différentes technologies.

Plus de Yuvraj Chandra

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner