Een array is een verzameling elementen met dezelfde gegevenstypen. Het is een lineaire gegevensstructuur en wordt opgeslagen op aaneengesloten geheugenlocaties. U kunt veel basisbewerkingen op een array uitvoeren, zoals invoegen, verwijderen, zoeken, bijwerken, doorlopen, enz.
In dit artikel leert u hoe u dubbele elementen uit gesorteerde en ongesorteerde arrays kunt verwijderen.
Hoe dubbele elementen uit een ongesorteerde array te verwijderen
Probleemstelling
U krijgt een ongesorteerde reeks gehele getallen. U moet de dubbele elementen uit de array verwijderen en de array afdrukken met unieke elementen.
voorbeeld 1: Laat arr = [23, 35, 23, 56, 67, 35, 35, 54, 76]
Array na het verwijderen van dubbele elementen: 23 35 56 67 54 76
De output is dus 23 35 56 67 54 76.
Voorbeeld 2: Laat arr = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]
Array na het verwijderen van dubbele elementen: 5 6 1 7 8 2
De output is dus 5 6 1 7 8 2.
Aanpak om dubbele elementen uit een ongesorteerde array te verwijderen
U kunt dubbele elementen uit een ongesorteerde array verwijderen door de onderstaande benadering te volgen:
- Initialiseer een hash-kaart die alle unieke elementen van de array opslaat.
- Doorkruis de array.
- Controleer of het element aanwezig is in de array.
- Als het element in de array aanwezig is, blijf dan doorlopen.
- Als het element niet in de array aanwezig is, drukt u het element af en slaat u het op in de hashmap.
Opmerking: De tijdscomplexiteit van deze oplossing is O(n).
C++-programma om dubbele elementen uit een ongesorteerde array te verwijderen
Hieronder staat het C++-programma om dubbele elementen uit een ongesorteerde array te verwijderen:
// C++ programma om dubbele elementen uit een ongesorteerde array te verwijderen
#erbij betrekken
namespace std; gebruiken;
// Functie om dubbele elementen uit een ongesorteerde array te verwijderen
void removeDuplicateElements (int arr[], int size)
{
unordered_map m;
voor (int i=0; I{
// Druk het element af als dat niet het geval is
// aanwezig in de hash-kaart
if (m.find (arr[i]) == m.end())
{
cout << arr[i] << " ";
}
// Voeg het element in de hash-map in
m[arr[i]] = waar;
}
cout << endl;
}
void printArrayElements (int arr[], int size)
{
voor (int i=0; I{
cout << arr[i] << " ";
}
cout << endl;
}
int hoofd()
{
int arr1[] = {23, 35, 23, 56, 67, 35, 35, 54, 76};
int size1 = sizeof (arr1)/sizeof (arr1[0]);
cout << "Initial Array: " << endl;
printArrayElements (arr1, grootte1);
cout << "Array na het verwijderen van duplicaten: " << endl;
removeDuplicateElements (arr1, maat1);
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, grootte2);
cout << "Array na het verwijderen van duplicaten: " << endl;
removeDuplicateElements (arr2, maat2);
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 na het verwijderen van duplicaten: " << endl;
removeDuplicateElements (arr3, size3);
retourneer 0;
}
Uitgang:
Eerste reeks:
23 35 23 56 67 35 35 54 76
Array na het verwijderen van duplicaten:
23 35 56 67 54 76
Eerste reeks:
5 6 1 1 7 5 8 2 7 8
Array na het verwijderen van duplicaten:
5 6 1 7 8 2
Eerste reeks:
32 35 33 32 33 38 32 39
Array na het verwijderen van duplicaten:
32 35 33 38 39
Verwant: Hoe "Hallo, wereld!" af te drukken in de meest populaire programmeertalen
Python-programma om dubbele elementen uit een ongesorteerde array te verwijderen
Hieronder staat het Python-programma om dubbele elementen uit een ongesorteerde array te verwijderen:
# Python-programma om dubbele elementen uit een ongesorteerde lijst te verwijderen
def removeDuplicateElements (arr, grootte):
m = {}
voor i binnen bereik (maat):
# Druk het element af als dat niet het geval is
# aanwezig in het woordenboek
indien arr[i] niet in m:
print (arr[i], end = " ")
# Voeg het element in het woordenboek in
m[arr[i]] = 1
afdrukken()
def printListElements (arr, grootte):
voor i binnen bereik (maat):
print (arr[i], end=" ")
afdrukken()
arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76]
maat1 = len (arr1)
print("Initiële lijst: ")
printListElements (arr1, maat1)
print("Lijst na het verwijderen van duplicaten: ")
removeDuplicateElements (arr1, maat1)
arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]
maat2 = len (arr2)
print("Initiële lijst: ")
printListElements (arr2, maat2)
print("Lijst na het verwijderen van duplicaten: ")
removeDuplicateElements (arr2, maat2)
arr3 = [32, 35, 33, 32, 33, 38, 32, 39]
maat3 = len (arr3)
print("Initiële lijst: ")
printListElements (arr3, maat3)
print("Lijst na het verwijderen van duplicaten: ")
removeDuplicateElements (arr3, size3)
Uitgang:
Eerste reeks:
23 35 23 56 67 35 35 54 76
Array na het verwijderen van duplicaten:
23 35 56 67 54 76
Eerste reeks:
5 6 1 1 7 5 8 2 7 8
Array na het verwijderen van duplicaten:
5 6 1 7 8 2
Eerste reeks:
32 35 33 32 33 38 32 39
Array na het verwijderen van duplicaten:
32 35 33 38 39
JavaScript-programma om dubbele elementen uit een ongesorteerde array te verwijderen
Hieronder staat het JavaScript-programma om dubbele elementen uit een ongesorteerde array te verwijderen:
// JavaScript-programma om dubbele elementen uit een ongesorteerde array te verwijderen
// Functie om dubbele elementen uit een ongesorteerde array te verwijderen
functie removeDuplicateElements (arr, grootte) {
laat m = nieuwe kaart();
voor (laat ik = 0; ik < maat; ik++) {
// Druk het element af als dat niet het geval is
// aanwezig in de hash-kaart
if (m.get (arr[i]) == null) {
document.schrijven (arr[i] + " ");
}
// Voeg het element in de hash-map in
m.set (arr[i], waar);
}
document.schrijven("
");
}
functie printArrayElements (arr, grootte) {
voor (laat i=0; Idocument.schrijven (arr[i] + " ");
}
document.schrijven("
");
}
laat arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76];
laat size1 = arr1.length;
document.write("Initiële matrix: " + "
");
printArrayElements (arr1, grootte1);
document.write("Array na het verwijderen van duplicaten: " + "
");
removeDuplicateElements (arr1, maat1);
laat arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8];
laat size2 = arr2.length;
document.write("Initiële matrix: " + "
");
printArrayElements (arr2, grootte2);
document.write("Array na het verwijderen van duplicaten: " + "
");
removeDuplicateElements (arr2, maat2);
laat arr3 = [32, 35, 33, 32, 33, 38, 32, 39];
laat size3 = arr3.length;
document.write("Initiële matrix: " + "
");
printArrayElements (arr3, size3);
document.write("Array na het verwijderen van duplicaten: " + "
");
removeDuplicateElements (arr3, size3);
Uitgang:
Eerste reeks:
23 35 23 56 67 35 35 54 76
Array na het verwijderen van duplicaten:
23 35 56 67 54 76
Eerste reeks:
5 6 1 1 7 5 8 2 7 8
Array na het verwijderen van duplicaten:
5 6 1 7 8 2
Eerste reeks:
32 35 33 32 33 38 32 39
Array na het verwijderen van duplicaten:
32 35 33 38 39
Verwant: Hoe het voorkomen van een bepaald karakter in een string te tellen?
Hoe dubbele elementen uit een gesorteerde array te verwijderen
Probleemstelling
U krijgt een gesorteerde reeks gehele getallen. U moet de dubbele elementen uit de array verwijderen en de array afdrukken met unieke elementen.
voorbeeld 1: Laat arr = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]
Array na het verwijderen van dubbele elementen: 1 2 4 6 8 9
De output is dus 1 2 4 6 8 9.
Voorbeeld 2: Laat arr = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
Array na het verwijderen van dubbele elementen: 1 2 3 4 5
De output is dus 1 2 3 4 5.
Aanpak om dubbele elementen uit een gesorteerde array te verwijderen
U kunt dubbele elementen uit een gesorteerde array verwijderen door de onderstaande benadering te volgen:
- Initialiseer de indexvariabelen i en j met 0.
- Herhaal de array.
- Als het ith-element niet gelijk is aan het (i+1)de element, sla dan de ith-waarde op in arr[j] en verhoog de waarde van j.
- Verhoog de waarde van i in elke iteratie.
- Sla de laatste waarde van arr op in arr[j].
- Retourneer ten slotte de nieuwe grootte van de array, d.w.z. j. Unieke elementen worden opgeslagen in de array van index 0 tot j-1.
Opmerking: De tijdscomplexiteit van deze oplossing is O(n).
C++-programma om dubbele elementen uit een gesorteerde array te verwijderen
Hieronder staat het C++-programma om dubbele elementen uit een gesorteerde array te verwijderen:
// C++ programma om dubbele elementen uit een gesorteerde array te verwijderen
#erbij betrekken
namespace std; gebruiken;
// Functie om dubbele elementen uit een gesorteerde array te verwijderen
int removeDuplicateElements (int arr[], int grootte)
{
intj = 0;
voor (int i = 0; ik < maat-1; ik++)
{
// Als het element niet gelijk is aan (i+1)de element,
// sla vervolgens de waarde op in arr [j]
if (arr[i] != arr[i+1])
{
arr[j] = arr[i];
j++;
}
}
// De laatste waarde van arr opslaan in arr[j]
arr[j++] = arr[grootte-1];
retour j;
}
void printArrayElements (int arr[], int size)
{
voor (int i=0; I{
cout << arr[i] << " ";
}
cout << endl;
}
int hoofd()
{
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, grootte1);
cout << "Array na het verwijderen van duplicaten: " << endl;
size1 = removeDuplicateElements (arr1, size1);
printArrayElements (arr1, grootte1);
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, grootte2);
cout << "Array na het verwijderen van duplicaten: " << endl;
size2 = removeDuplicateElements (arr2, size2);
printArrayElements (arr2, grootte2);
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 na het verwijderen van duplicaten: " << endl;
size3 = removeDuplicateElements (arr3, size3);
printArrayElements (arr3, size3);
retourneer 0;
}
Uitgang:
Eerste reeks:
1 1 1 2 4 6 8 8 9 9
Array na het verwijderen van duplicaten:
1 2 4 6 8 9
Eerste reeks:
1 1 2 2 3 3 4 4 5 5
Array na het verwijderen van duplicaten:
1 2 3 4 5
Eerste reeks:
10 12 12 14 16 16 18 19 19
Array na het verwijderen van duplicaten:
10 12 14 16 18 19
Python-programma om dubbele elementen uit een gesorteerde array te verwijderen
Hieronder staat het Python-programma om dubbele elementen uit een gesorteerde array te verwijderen:
# Python-programma om dubbele elementen uit een gesorteerde array te verwijderen
def removeDuplicateElements (arr, grootte):
j = 0
voor i in bereik (maat-1):
if arr[i] != arr[i+1]:
arr[j] = arr[i]
j = j+1
arr[j] = arr[maat-1]
j = j+1
terug j
def printListElements (arr, grootte):
voor i binnen bereik (maat):
print (arr[i], end=" ")
afdrukken()
arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]
maat1 = len (arr1)
print("Initiële array:")
printListElements (arr1, maat1)
print("Array na het verwijderen van duplicaten:")
size1 = removeDuplicateElements (arr1, size1)
printListElements (arr1, maat1)
arr2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
maat2 = len (arr2)
print("Initiële array:")
printListElements (arr2, maat2)
print("Array na het verwijderen van duplicaten:")
size2 = removeDuplicateElements (arr2, size2)
printListElements (arr2, maat2)
arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19]
maat3 = len (arr3)
print("Initiële array:")
printListElements (arr3, maat3)
print("Array na het verwijderen van duplicaten:")
size3 = removeDuplicateElements (arr3, size3)
printListElements (arr3, maat3)
Uitgang:
Eerste reeks:
1 1 1 2 4 6 8 8 9 9
Array na het verwijderen van duplicaten:
1 2 4 6 8 9
Eerste reeks:
1 1 2 2 3 3 4 4 5 5
Array na het verwijderen van duplicaten:
1 2 3 4 5
Eerste reeks:
10 12 12 14 16 16 18 19 19
Array na het verwijderen van duplicaten:
10 12 14 16 18 19
Verwant: Een inleiding tot het samenvoegsorteeralgoritme
JavaScript-programma om dubbele elementen uit een gesorteerde array te verwijderen
Hieronder staat het JavaScript-programma om dubbele elementen uit een gesorteerde array te verwijderen:
// JavaScript-programma om dubbele elementen uit een gesorteerde array te verwijderen
// Functie om dubbele elementen uit een gesorteerde array te verwijderen
functie removeDuplicateElements (arr, grootte)
{
laat j = 0;
voor (laat ik = 0; ik < maat-1; ik++)
{
// Als het element niet gelijk is aan (i+1)de element,
// sla vervolgens de waarde op in arr [j]
if (arr[i] != arr[i+1])
{
arr[j] = arr[i];
j++;
}
}
// De laatste waarde van arr opslaan in arr[j]
arr[j++] = arr[grootte-1];
retour j;
}
functie printArrayElements (arr, grootte) {
voor (laat i=0; Idocument.schrijven (arr[i] + " ");
}
document.schrijven("
");
}
var arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9];
var maat1 = arr1.lengte;
document.write("Initiële matrix: " + "
");
printArrayElements (arr1, grootte1);
document.write("Array na het verwijderen van duplicaten: " + "
");
size1 = removeDuplicateElements (arr1, size1);
printArrayElements (arr1, grootte1);
var arr2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5];
var size2 = arr2.length;
document.write("Initiële matrix: " + "
");
printArrayElements (arr2, grootte2);
document.write("Array na het verwijderen van duplicaten: " + "
");
size2 = removeDuplicateElements (arr2, size2);
printArrayElements (arr2, grootte2);
var arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19];
var size3 = arr3.lengte;
document.write("Initiële matrix: " + "
");
printArrayElements (arr3, size3);
document.write("Array na het verwijderen van duplicaten: " + "
");
size3 = removeDuplicateElements (arr3, size3);
printArrayElements (arr3, size3);
Uitgang:
Verwant: Hoe het meest voorkomende karakter in een string te vinden
Eerste reeks:
1 1 1 2 4 6 8 8 9 9
Array na het verwijderen van duplicaten:
1 2 4 6 8 9
Eerste reeks:
1 1 2 2 3 3 4 4 5 5
Array na het verwijderen van duplicaten:
1 2 3 4 5
Eerste reeks:
10 12 12 14 16 16 18 19 19
Array na het verwijderen van duplicaten:
10 12 14 16 18 19
Oefen string- en array-problemen voor uw volgende interview
String- en arrayproblemen behoren tot de meest gestelde onderwerpen in technische interviews.
Als je zo goed mogelijk voorbereid wilt zijn, moet je een aantal veelgestelde problemen oefenen, zoals hoe te controleren of een string een palindroom is, hoe te controleren of een string een anagram, het meest voorkomende teken in een string vinden, een array omkeren, algoritmen sorteren en zoeken op basis van arrays, een string omkeren, enz.
Leer hoe u een tekenreeks van voor naar achter kunt omkeren in drie verschillende talen.
Lees volgende
- Programmeren
- JavaScript
- Python
- Codeerhandleidingen
Yuvraj is een student Computerwetenschappen aan de Universiteit van Delhi, India. Hij is gepassioneerd door Full Stack Web Development. Als hij niet aan het schrijven is, onderzoekt hij de diepte van verschillende technologieën.
Abonneer op onze nieuwsbrief
Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!
Klik hier om je te abonneren