So entfernen Sie doppelte Elemente aus einem Array in JavaScript, Python und C++
Ein Array ist eine Sammlung von Elementen mit den gleichen Datentypen. Es ist eine lineare Datenstruktur und wird in zusammenhängenden Speicherorten gespeichert. Sie können viele grundlegende Operationen an einem Array ausführen, wie Einfügen, Löschen, Suchen, Aktualisieren, Durchlaufen usw.
In diesem Artikel erfahren Sie, wie Sie doppelte Elemente aus sortierten und unsortierten Arrays entfernen.
So entfernen Sie doppelte Elemente aus einem unsortierten Array
Problemstellung
Sie erhalten ein unsortiertes Array von Ganzzahlen. Sie müssen die doppelten Elemente aus dem Array entfernen und das Array mit eindeutigen Elementen drucken.
Beispiel 1 : Sei arr = [23, 35, 23, 56, 67, 35, 35, 54, 76]
Array nach dem Entfernen doppelter Elemente: 23 35 56 67 54 76
Somit beträgt die Ausgabe 23 35 56 67 54 76.
Beispiel 2 : Sei arr = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]
Array nach dem Entfernen doppelter Elemente: 5 6 1 7 8 2
Somit ist die Ausgabe 5 6 1 7 8 2.
Ansatz zum Entfernen doppelter Elemente aus einem unsortierten Array
Sie können doppelte Elemente aus einem unsortierten Array entfernen, indem Sie den folgenden Ansatz befolgen:
- Initialisieren Sie eine Hash-Map, die alle eindeutigen Elemente des Arrays speichert.
- Durchqueren Sie das Array.
- Überprüfen Sie, ob das Element im Array vorhanden ist.
- Wenn das Element im Array vorhanden ist, fahren Sie fort.
- Wenn das Element nicht im Array vorhanden ist, drucken Sie das Element aus und speichern Sie es in der Hash-Map.
Hinweis : Die Zeitkomplexität dieser Lösung ist O(n).
C++-Programm zum Entfernen doppelter Elemente aus einem unsortierten Array
Unten ist das C++-Programm zum Entfernen doppelter Elemente aus einem unsortierten Array:
// 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;
}
Ausgabe:
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
Python-Programm zum Entfernen doppelter Elemente aus einem unsortierten Array
Unten ist das Python-Programm zum Entfernen doppelter Elemente aus einem unsortierten Array:
# 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)
Ausgabe:
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
JavaScript-Programm zum Entfernen doppelter Elemente aus einem unsortierten Array
Unten ist das JavaScript-Programm zum Entfernen doppelter Elemente aus einem unsortierten Array:
// 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);
Ausgabe:
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
So entfernen Sie doppelte Elemente aus einem sortierten Array
Problemstellung
Sie erhalten ein sortiertes Array von ganzen Zahlen. Sie müssen die doppelten Elemente aus dem Array entfernen und das Array mit eindeutigen Elementen drucken.
Beispiel 1 : Sei arr = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]
Array nach dem Entfernen doppelter Elemente: 1 2 4 6 8 9
Somit ist die Ausgabe 1 2 4 6 8 9.
Beispiel 2 : Sei arr = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
Array nach dem Entfernen doppelter Elemente: 1 2 3 4 5
Somit ist die Ausgabe 1 2 3 4 5.
Ansatz zum Entfernen doppelter Elemente aus einem sortierten Array
Sie können doppelte Elemente aus einem sortierten Array entfernen, indem Sie den folgenden Ansatz befolgen:
- Initialisieren Sie die Indexvariablen i und j mit 0.
- Iterieren Sie das Array.
- Wenn das i-te Element nicht gleich dem (i + 1)-ten Element ist, dann speichere den i-ten Wert in arr[j] und inkrementiere den Wert von j.
- Erhöhen Sie den Wert von i in jeder Iteration.
- Speichern Sie den letzten Wert von arr in arr[j].
- Geben Sie schließlich die neue Größe des Arrays zurück, dh j. Eindeutige Elemente werden im Array von Index 0 bis j-1 gespeichert.
Hinweis : Die Zeitkomplexität dieser Lösung ist O(n).
C++-Programm zum Entfernen doppelter Elemente aus einem sortierten Array
Unten ist das C++-Programm zum Entfernen doppelter Elemente aus einem sortierten Array:
// 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;
}
Ausgabe:
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
Python-Programm zum Entfernen doppelter Elemente aus einem sortierten Array
Unten ist das Python-Programm zum Entfernen doppelter Elemente aus einem sortierten Array:
# 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)
Ausgabe:
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
JavaScript-Programm zum Entfernen doppelter Elemente aus einem sortierten Array
Unten ist das JavaScript-Programm zum Entfernen doppelter Elemente aus einem sortierten Array:
// 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);
Ausgabe:
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
Üben Sie String- und Array-Probleme für Ihr nächstes Interview
String- und Array-Probleme gehören zu den am häufigsten gestellten Themen in technischen Interviews.
Wenn Sie so gut wie möglich vorbereitet sein möchten, müssen Sie einige häufig gestellte Probleme üben, z. wie man ein Array umkehrt, Sortier- und Suchalgorithmen basierend auf Arrays, wie man einen String umkehrt usw.