Pole je kolekce prvků se stejnými datovými typy. Je to lineární datová struktura a je uložena v souvislých paměťových místech. Na poli můžete provádět mnoho základních operací, jako je vkládání, mazání, vyhledávání, aktualizace, procházení atd.

V tomto článku se dozvíte, jak odebrat duplicitní prvky z seřazených a netříděných polí.

Jak odebrat duplicitní prvky z netříděného pole

Problémové prohlášení

Dostali jste netříděné pole celých čísel. Musíte odstranit duplicitní prvky z pole a vytisknout pole s jedinečnými prvky.

Příklad 1: Nechť arr = [23, 35, 23, 56, 67, 35, 35, 54, 76]

Pole po odstranění duplicitních prvků: 23 35 56 67 54 76

Výstup je tedy 23 35 56 67 54 76.

Příklad 2: Nechť arr = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]

Pole po odstranění duplicitních prvků: 5 6 1 7 8 2

Výstup je tedy 5 6 1 7 8 2.

Přístup k odstranění duplicitních prvků z netříděného pole

Duplicitní prvky můžete z netříděného pole odebrat podle následujícího postupu:

  1. Inicializujte hashovací mapu, která uloží všechny jedinečné prvky pole.
  2. instagram viewer
  3. Posuňte pole.
  4. Zkontrolujte, zda je prvek v poli přítomen.
  5. Pokud je prvek v poli, pokračujte v procházení.
  6. Pokud prvek není v poli, vytiskněte jej a uložte do hash mapy.

Poznámka: Časová složitost tohoto řešení je O (n).

Program C ++ pro odstranění duplicitních prvků z netříděného pole

Níže je program C ++ pro odstranění duplicitních prvků z netříděného pole:

// Program C ++ pro odstranění duplicitních prvků z netříděného pole
#zahrnout
pomocí jmenného prostoru std;
// Funkce pro odstranění duplicitních prvků z netříděného pole
void removeDuplicateElements (int arr [], velikost int)
{
unordered_map m;
pro (int i = 0; i{
// Vytiskněte prvek, pokud není
// přítomný v hash mapě
if (m.find (arr [i]) == m.end ())
{
cout << arr [i] << "";
}
// Vložte prvek do hash mapy
m [arr [i]] = true;
}
cout << endl;
}
void printArrayElements (int arr [], velikost int)
{
pro (int i = 0; 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 << "Počáteční pole:" << endl;
printArrayElements (arr1, size1);
cout << "Pole po odstranění duplikátů:" << endl;
removeDuplicateElements (arr1, size1);
int arr2 [] = {5, 6, 1, 1, 7, 5, 8, 2, 7, 8};
int size2 = sizeof (arr2) / sizeof (arr2 [0]);
cout << "Počáteční pole:" << endl;
printArrayElements (arr2, size2);
cout << "Pole po odstranění duplikátů:" << endl;
removeDuplicateElements (arr2, size2);
int arr3 [] = {32, 35, 33, 32, 33, 38, 32, 39};
int size3 = sizeof (arr3) / sizeof (arr3 [0]);
cout << "Počáteční pole:" << endl;
printArrayElements (arr3, size3);
cout << "Pole po odstranění duplikátů:" << endl;
removeDuplicateElements (arr3, size3);
návrat 0;
}

Výstup:

Počáteční pole: 
23 35 23 56 67 35 35 54 76
Pole po odstranění duplikátů:
23 35 56 67 54 76
Počáteční pole:
5 6 1 1 7 5 8 2 7 8
Pole po odstranění duplikátů:
5 6 1 7 8 2
Počáteční pole:
32 35 33 32 33 38 32 39
Pole po odstranění duplikátů:
32 35 33 38 39

Příbuzný: Jak tisknout „Ahoj, světe!“ v nejpopulárnějších programovacích jazycích

Program Python pro odstranění duplicitních prvků z netříděného pole

Níže je program Python pro odstranění duplicitních prvků z netříděného pole:

# Program v Pythonu k odstranění duplicitních prvků z netříděného seznamu
def removeDuplicateElements (arr, velikost):
m = {}
pro i v rozsahu (velikost):
# Vytiskněte prvek, pokud tomu tak není
# ve slovníku
pokud arr [i] není v m:
print (arr [i], end = "")
# Vložte prvek do slovníku
m [arr [i]] = 1
vytisknout()
def printListElements (arr, velikost):
pro i v rozsahu (velikost):
print (arr [i], end = "")
vytisknout()
arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76]
size1 = len (arr1)
print ("Počáteční seznam:")
printListElements (arr1, size1)
print ("Seznam po odstranění duplikátů:")
removeDuplicateElements (arr1, size1)
arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]
size2 = len (arr2)
print ("Počáteční seznam:")
printListElements (arr2, size2)
print ("Seznam po odstranění duplikátů:")
removeDuplicateElements (arr2, size2)
arr3 = [32, 35, 33, 32, 33, 38, 32, 39]
size3 = len (arr3)
print ("Počáteční seznam:")
printListElements (arr3, size3)
print ("Seznam po odstranění duplikátů:")
removeDuplicateElements (arr3, size3)

Výstup:

Počáteční pole: 
23 35 23 56 67 35 35 54 76
Pole po odstranění duplikátů:
23 35 56 67 54 76
Počáteční pole:
5 6 1 1 7 5 8 2 7 8
Pole po odstranění duplikátů:
5 6 1 7 8 2
Počáteční pole:
32 35 33 32 33 38 32 39
Pole po odstranění duplikátů:
32 35 33 38 39

JavaScriptový program pro odstranění duplicitních prvků z netříděného pole

Níže je uveden program JavaScriptu pro odstranění duplicitních prvků z netříděného pole:

// JavaScriptový program pro odstranění duplicitních prvků z netříděného pole
// Funkce pro odstranění duplicitních prvků z netříděného pole
funkce removeDuplicateElements (arr, velikost) {
nechť m = nová mapa ();
pro (ať i = 0; i // Vytiskněte prvek, pokud není
// přítomný v hash mapě
if (m.get (arr [i]) == null) {
document.write (arr [i] + "");
}
// Vložte prvek do hash mapy
m.set (arr [i], true);
}
document.write ("
");
}
funkce printArrayElements (arr, velikost) {
pro (ať i = 0; idocument.write (arr [i] + "");
}
document.write ("
");
}
nechme arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76];
nechť size1 = arr1.length;
document.write ("Počáteční pole:" + "
");
printArrayElements (arr1, size1);
document.write ("Pole po odstranění duplikátů:" + "
");
removeDuplicateElements (arr1, size1);
nech arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8];
nechť size2 = arr2.length;
document.write ("Počáteční pole:" + "
");
printArrayElements (arr2, size2);
document.write ("Pole po odstranění duplikátů:" + "
");
removeDuplicateElements (arr2, size2);
nech arr3 = [32, 35, 33, 32, 33, 38, 32, 39];
nechme size3 = arr3.length;
document.write ("Počáteční pole:" + "
");
printArrayElements (arr3, size3);
document.write ("Pole po odstranění duplikátů:" + "
");
removeDuplicateElements (arr3, size3);

Výstup:

Počáteční pole: 
23 35 23 56 67 35 35 54 76
Pole po odstranění duplikátů:
23 35 56 67 54 76
Počáteční pole:
5 6 1 1 7 5 8 2 7 8
Pole po odstranění duplikátů:
5 6 1 7 8 2
Počáteční pole:
32 35 33 32 33 38 32 39
Pole po odstranění duplikátů:
32 35 33 38 39

Příbuzný: Jak spočítat výskyt dané postavy v řetězci

Jak odebrat duplicitní prvky ze seřazeného pole

Problémové prohlášení

Dostanete seřazené pole celých čísel. Musíte odstranit duplicitní prvky z pole a vytisknout pole s jedinečnými prvky.

Příklad 1: Nechť arr = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]

Pole po odstranění duplicitních prvků: 1 2 4 6 8 9

Výstup je tedy 1 2 4 6 8 9.

Příklad 2: Nechť arr = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]

Pole po odstranění duplicitních prvků: 1 2 3 4 5

Výstup je tedy 1 2 3 4 5.

Přístup k odebrání duplicitních prvků ze seřazeného pole

Duplicitní prvky můžete odebrat ze seřazeného pole podle níže uvedeného postupu:

  1. Inicializujte proměnné indexu i a j pomocí 0.
  2. Iterovat pole.
  3. Pokud se i-tý prvek nerovná (i + 1) -tému prvku, uložte i-tou hodnotu do arr [j] a zvyšte hodnotu j.
  4. Zvyšte hodnotu i v každé iteraci.
  5. Uložte poslední hodnotu arr in arr [j].
  6. Nakonec vraťte novou velikost pole, tj. J. Unikátní prvky budou uloženy v poli od indexu 0 do j-1.

Poznámka: Časová složitost tohoto řešení je O (n).

Program C ++ pro odstranění duplicitních prvků ze seřazeného pole

Níže je program C ++ pro odstranění duplicitních prvků z seřazeného pole:

// Program C ++ pro odstranění duplicitních prvků z seřazeného pole
#zahrnout
pomocí jmenného prostoru std;
// Funkce pro odstranění duplicitních prvků z seřazeného pole
int removeDuplicateElements (int arr [], velikost int)
{
int j = 0;
pro (int i = 0; i {
// Pokud se i-tý prvek nerovná (i + 1) tému prvku,
// poté uloží i-tou hodnotu do arr [j]
if (arr [i]! = arr [i + 1])
{
arr [j] = arr [i];
j ++;
}
}
// Uložení poslední hodnoty arr in arr [j]
arr [j ++] = arr [velikost-1];
návrat j;
}
void printArrayElements (int arr [], velikost int)
{
pro (int i = 0; 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 << "Počáteční pole:" << endl;
printArrayElements (arr1, size1);
cout << "Pole po odstranění duplikátů:" << 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 << "Počáteční pole:" << endl;
printArrayElements (arr2, size2);
cout << "Pole po odstranění duplikátů:" << 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 << "Počáteční pole:" << endl;
printArrayElements (arr3, size3);
cout << "Pole po odstranění duplikátů:" << endl;
size3 = removeDuplicateElements (arr3, size3);
printArrayElements (arr3, size3);
návrat 0;
}

Výstup:

Počáteční pole: 
1 1 1 2 4 6 8 8 9 9
Pole po odstranění duplikátů:
1 2 4 6 8 9
Počáteční pole:
1 1 2 2 3 3 4 4 5 5
Pole po odstranění duplikátů:
1 2 3 4 5
Počáteční pole:
10 12 12 14 16 16 18 19 19
Pole po odstranění duplikátů:
10 12 14 16 18 19

Program v Pythonu na odstranění duplicitních prvků ze seřazeného pole

Níže je program Python pro odstranění duplicitních prvků z seřazeného pole:

# Program v Pythonu k odstranění duplicitních prvků z seřazeného pole
def removeDuplicateElements (arr, velikost):
j = 0
pro i v rozsahu (velikost-1):
if arr [i]! = arr [i + 1]:
arr [j] = arr [i]
j = j + 1
arr [j] = arr [velikost-1]
j = j + 1
návrat j
def printListElements (arr, velikost):
pro i v rozsahu (velikost):
print (arr [i], end = "")
vytisknout()
arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]
size1 = len (arr1)
print ("Počáteční pole:")
printListElements (arr1, size1)
print ("Pole po odstranění duplikátů:")
size1 = removeDuplicateElements (arr1, size1)
printListElements (arr1, size1)
arr2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
size2 = len (arr2)
print ("Počáteční pole:")
printListElements (arr2, size2)
print ("Pole po odstranění duplikátů:")
size2 = removeDuplicateElements (arr2, size2)
printListElements (arr2, size2)
arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19]
size3 = len (arr3)
print ("Počáteční pole:")
printListElements (arr3, size3)
print ("Pole po odstranění duplikátů:")
size3 = removeDuplicateElements (arr3, size3)
printListElements (arr3, size3)

Výstup:

Počáteční pole: 
1 1 1 2 4 6 8 8 9 9
Pole po odstranění duplikátů:
1 2 4 6 8 9
Počáteční pole:
1 1 2 2 3 3 4 4 5 5
Pole po odstranění duplikátů:
1 2 3 4 5
Počáteční pole:
10 12 12 14 16 16 18 19 19
Pole po odstranění duplikátů:
10 12 14 16 18 19

Příbuzný: Úvod do algoritmu sloučení řazení

JavaScriptový program pro odstranění duplicitních prvků ze seřazeného pole

Níže je uveden program JavaScriptu pro odstranění duplicitních prvků z seřazeného pole:

// JavaScriptový program pro odstranění duplicitních prvků z seřazeného pole
// Funkce pro odstranění duplicitních prvků z seřazeného pole
funkce removeDuplicateElements (arr, velikost)
{
nechť j = 0;
pro (ať i = 0; i {
// Pokud se i-tý prvek nerovná (i + 1) tému prvku,
// poté uloží i-tou hodnotu do arr [j]
if (arr [i]! = arr [i + 1])
{
arr [j] = arr [i];
j ++;
}
}
// Uložení poslední hodnoty arr in arr [j]
arr [j ++] = arr [velikost-1];
návrat j;
}
funkce printArrayElements (arr, velikost) {
pro (ať i = 0; idocument.write (arr [i] + "");
}
document.write ("
");
}
var arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9];
var size1 = arr1.length;
document.write ("Počáteční pole:" + "
");
printArrayElements (arr1, size1);
document.write ("Pole po odstranění duplikátů:" + "
");
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 ("Počáteční pole:" + "
");
printArrayElements (arr2, size2);
document.write ("Pole po odstranění duplikátů:" + "
");
size2 = removeDuplicateElements (arr2, size2);
printArrayElements (arr2, size2);
var arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19];
var size3 = arr3.length;
document.write ("Počáteční pole:" + "
");
printArrayElements (arr3, size3);
document.write ("Pole po odstranění duplikátů:" + "
");
size3 = removeDuplicateElements (arr3, size3);
printArrayElements (arr3, size3);

Výstup:

Příbuzný: Jak najít nejčastěji se vyskytující znak v řetězci

Počáteční pole: 
1 1 1 2 4 6 8 8 9 9
Pole po odstranění duplikátů:
1 2 4 6 8 9
Počáteční pole:
1 1 2 2 3 3 4 4 5 5
Pole po odstranění duplikátů:
1 2 3 4 5
Počáteční pole:
10 12 12 14 16 16 18 19 19
Pole po odstranění duplikátů:
10 12 14 16 18 19

Procvičte si problémy s řetězci a polem pro váš další pohovor

Problémy s řetězci a maticemi patří mezi nejžádanější témata v technických rozhovorech.

Pokud hledáte být co nejpřipravenější, musíte si vyzkoušet některé často kladené problémy, například jak zkontrolovat, zda je řetězec palindrom, jak zkontrolovat, zda je řetězec anagram, najděte nejčastěji se vyskytující znak v řetězci, jak obrátit pole, algoritmy řazení a vyhledávání na základě polí, jak obrátit řetězec, atd.

E-mailem
Jak převrátit řetězec v C ++, Pythonu a JavaScriptu

Naučte se, jak převrátit řetězec dopředu ve třech různých jazycích.

Přečtěte si další

Související témata
  • Programování
  • JavaScript
  • Krajta
  • Výukové programy pro kódování
O autorovi
Yuvraj Chandra (40 článků publikováno)

Yuvraj je vysokoškolský student výpočetní techniky na univerzitě v Dillí v Indii. Je vášnivým vývojářem Full Stack Web Development. Když nepíše, zkoumá hloubku různých technologií.

Více od Yuvraj Chandra

Přihlaste se k odběru našeho zpravodaje

Připojte se k našemu zpravodaji s technickými tipy, recenzemi, bezplatnými elektronickými knihami a exkluzivními nabídkami!

Kliknutím sem se přihlásíte k odběru