Comment supprimer les éléments en double d’un tableau en JavaScript, Python et C++

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é

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.

Remarque : 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é :

 // C++ program to remove duplicate elements from an unsorted array
#include <bits/stdc++.h>
using namespace std;
// Function to remove duplicate elements from an unsorted array
void removeDuplicateElements(int arr[], int size)
{
unordered_map<int, bool> m;
for(int i=0; i<size; i++)
{
// Print the element if it's not
// present in the hash map
if (m.find(arr[i]) == m.end())
{
cout << arr[i] << " ";
}
// Insert the element in the hash map
m[arr[i]] = true;
}
cout << endl;
}
void printArrayElements(int arr[], int size)
{
for(int i=0; i<size; i++)
{
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 << "Initial Array: " << endl;
printArrayElements(arr1, size1);
cout << "Array after removing duplicates: " << endl;
removeDuplicateElements(arr1, size1);
int arr2[] = {5, 6, 1, 1, 7, 5, 8, 2, 7, 8};
int size2 = sizeof(arr2)/sizeof(arr2[0]);
cout << "Initial Array: " << endl;
printArrayElements(arr2, size2);
cout << "Array after removing duplicates: " << endl;
removeDuplicateElements(arr2, size2);
int arr3[] = {32, 35, 33, 32, 33, 38, 32, 39};
int size3 = sizeof(arr3)/sizeof(arr3[0]);
cout << "Initial Array: " << endl;
printArrayElements(arr3, size3);
cout << "Array after removing duplicates: " << endl;
removeDuplicateElements(arr3, size3);
return 0;
}

Production:

 Initial Array:
23 35 23 56 67 35 35 54 76
Array after removing duplicates:
23 35 56 67 54 76
Initial Array:
5 6 1 1 7 5 8 2 7 8
Array after removing duplicates:
5 6 1 7 8 2
Initial Array:
32 35 33 32 33 38 32 39
Array after removing duplicates:
32 35 33 38 39

Connexes : 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é :

 # Python program to remove duplicate elements from an unsorted list
def removeDuplicateElements(arr, size):
m = {}
for i in range(size):
# Print the element if it's not
# present in the dictionary
if arr[i] not in m:
print(arr[i], end = " ")
# Insert the element in the dictionary
m[arr[i]] = 1
print()

def printListElements(arr, size):
for i in range(size):
print(arr[i], end=" ")
print()
arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76]
size1 = len(arr1)
print("Initial List: ")
printListElements(arr1, size1)
print("List after removing duplicates: ")
removeDuplicateElements(arr1, size1)
arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]
size2 = len(arr2)
print("Initial List: ")
printListElements(arr2, size2)
print("List after removing duplicates: ")
removeDuplicateElements(arr2, size2)
arr3 = [32, 35, 33, 32, 33, 38, 32, 39]
size3 = len(arr3)
print("Initial List: ")
printListElements(arr3, size3)
print("List after removing duplicates: ")
removeDuplicateElements(arr3, size3)

Production:

 Initial Array:
23 35 23 56 67 35 35 54 76
Array after removing duplicates:
23 35 56 67 54 76
Initial Array:
5 6 1 1 7 5 8 2 7 8
Array after removing duplicates:
5 6 1 7 8 2
Initial Array:
32 35 33 32 33 38 32 39
Array after removing duplicates:
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é :

 // JavaScript program to remove duplicate elements from an unsorted array
// Function to remove duplicate elements from an unsorted array
function removeDuplicateElements(arr, size) {
let m = new Map();
for (let i = 0; i < size; i++) {
// Print the element if it's not
// present in the hash map
if (m.get(arr[i]) == null) {
document.write(arr[i] + " ");
}
// Insert the element in the hash map
m.set(arr[i], true);
}
document.write("<br>");
}
function printArrayElements(arr, size) {
for(let i=0; i<size; i++) {
document.write(arr[i] + " ");
}
document.write("<br>");
}
let arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76];
let size1 = arr1.length;
document.write("Initial Array: " + "<br>");
printArrayElements(arr1, size1);
document.write("Array after removing duplicates: " + "<br>");
removeDuplicateElements(arr1, size1);
let arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8];
let size2 = arr2.length;
document.write("Initial Array: " + "<br>");
printArrayElements(arr2, size2);
document.write("Array after removing duplicates: " + "<br>");
removeDuplicateElements(arr2, size2);
let arr3 = [32, 35, 33, 32, 33, 38, 32, 39];
let size3 = arr3.length;
document.write("Initial Array: " + "<br>");
printArrayElements(arr3, size3);
document.write("Array after removing duplicates: " + "<br>");
removeDuplicateElements(arr3, size3);

Production:

 Initial Array:
23 35 23 56 67 35 35 54 76
Array after removing duplicates:
23 35 56 67 54 76
Initial Array:
5 6 1 1 7 5 8 2 7 8
Array after removing duplicates:
5 6 1 7 8 2
Initial Array:
32 35 33 32 33 38 32 39
Array after removing duplicates:
32 35 33 38 39

Connexes : 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.

Remarque : 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é :

 // C++ program to remove duplicate elements from a sorted array
#include <iostream>
using namespace std;
// Function to remove duplicate elements from a sorted array
int removeDuplicateElements(int arr[], int size)
{
int j = 0;
for (int i = 0; i < size-1; i++)
{
// If ith element is not equal to (i+1)th element,
// then store ith value in arr[j]
if (arr[i] != arr[i+1])
{
arr[j] = arr[i];
j++;
}
}
// Storing the last value of arr in arr[j]
arr[j++] = arr[size-1];
return j;
}
void printArrayElements(int arr[], int size)
{
for(int i=0; i<size; i++)
{
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 << "Initial Array: " << endl;
printArrayElements(arr1, size1);
cout << "Array after removing duplicates: " << 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 << "Initial Array: " << endl;
printArrayElements(arr2, size2);
cout << "Array after removing duplicates: " << 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 << "Initial Array: " << endl;
printArrayElements(arr3, size3);
cout << "Array after removing duplicates: " << endl;
size3 = removeDuplicateElements(arr3, size3);
printArrayElements(arr3, size3);
return 0;
}

Production:

 Initial Array:
1 1 1 2 4 6 8 8 9 9
Array after removing duplicates:
1 2 4 6 8 9
Initial Array:
1 1 2 2 3 3 4 4 5 5
Array after removing duplicates:
1 2 3 4 5
Initial Array:
10 12 12 14 16 16 18 19 19
Array after removing duplicates:
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é :

 # Python program to remove duplicate elements from a sorted array
def removeDuplicateElements(arr, size):
j = 0
for i in range(size-1):
if arr[i] != arr[i+1]:
arr[j] = arr[i]
j = j+1
arr[j] = arr[size-1]
j = j+1
return j
def printListElements(arr, size):
for i in range(size):
print(arr[i], end=" ")
print()
arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]
size1 = len(arr1)
print("Initial Array:")
printListElements(arr1, size1)
print("Array after removing duplicates:")
size1 = removeDuplicateElements(arr1, size1)
printListElements(arr1, size1)
arr2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
size2 = len(arr2)
print("Initial Array:")
printListElements(arr2, size2)
print("Array after removing duplicates:")
size2 = removeDuplicateElements(arr2, size2)
printListElements(arr2, size2)
arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19]
size3 = len(arr3)
print("Initial Array:")
printListElements(arr3, size3)
print("Array after removing duplicates:")
size3 = removeDuplicateElements(arr3, size3)
printListElements(arr3, size3)

Production:

 Initial Array:
1 1 1 2 4 6 8 8 9 9
Array after removing duplicates:
1 2 4 6 8 9
Initial Array:
1 1 2 2 3 3 4 4 5 5
Array after removing duplicates:
1 2 3 4 5
Initial Array:
10 12 12 14 16 16 18 19 19
Array after removing duplicates:
10 12 14 16 18 19

Connexes : 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é :

 // JavaScript program to remove duplicate elements from a sorted array
// Function to remove duplicate elements from a sorted array
function removeDuplicateElements(arr, size)
{
let j = 0;
for (let i = 0; i < size-1; i++)
{
// If ith element is not equal to (i+1)th element,
// then store ith value in arr[j]
if (arr[i] != arr[i+1])
{
arr[j] = arr[i];
j++;
}
}
// Storing the last value of arr in arr[j]
arr[j++] = arr[size-1];
return j;
}
function printArrayElements(arr, size) {
for(let i=0; i<size; i++) {
document.write(arr[i] + " ");
}
document.write("<br>");
}

var arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9];
var size1 = arr1.length;
document.write("Initial Array: " + "<br>");
printArrayElements(arr1, size1);
document.write("Array after removing duplicates: " + "<br>");
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("Initial Array: " + "<br>");
printArrayElements(arr2, size2);
document.write("Array after removing duplicates: " + "<br>");
size2 = removeDuplicateElements(arr2, size2);
printArrayElements(arr2, size2);
var arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19];
var size3 = arr3.length;
document.write("Initial Array: " + "<br>");
printArrayElements(arr3, size3);
document.write("Array after removing duplicates: " + "<br>");
size3 = removeDuplicateElements(arr3, size3);
printArrayElements(arr3, size3);

Production:

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

 Initial Array:
1 1 1 2 4 6 8 8 9 9
Array after removing duplicates:
1 2 4 6 8 9
Initial Array:
1 1 2 2 3 3 4 4 5 5
Array after removing duplicates:
1 2 3 4 5
Initial Array:
10 12 12 14 16 16 18 19 19
Array after removing duplicates:
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.