Pole je kolekcia prvkov s rovnakými dátovými typmi. Je to lineárna dátová štruktúra a je uložená v susedných pamätiach. Na poli môžete vykonávať mnoho základných operácií, ako je vkladanie, mazanie, hľadanie, aktualizácia, prechod atď.

V tomto článku sa dozviete, ako odstrániť duplicitné prvky z triedených a netriedených polí.

Ako odstrániť duplicitné prvky z netriedeného poľa

Vyhlásenie o probléme

Dostali ste netriedené pole celých čísel. Musíte odstrániť duplicitné prvky z poľa a vytlačiť pole s jedinečnými prvkami.

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

Pole po odstránení duplicitných prvkov: 23 35 56 67 54 76

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

Príklad 2: Nech arr = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]

Pole po odstránení duplicitných prvkov: 5 6 1 7 8 2

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

Prístup k odstráneniu duplicitných prvkov z netriedeného poľa

Duplicitné prvky môžete z netriedeného poľa odstrániť nasledujúcim spôsobom:

  1. Inicializujte hashovaciu mapu, ktorá uloží všetky jedinečné prvky poľa.
  2. instagram viewer
  3. Prejdite pole.
  4. Skontrolujte, či je prvok v poli.
  5. Ak je prvok v poli prítomný, pokračujte v pohybe.
  6. Ak sa prvok v poli nenachádza, vytlačte ho a uložte do hašovacej mapy.

Poznámka: Časová zložitosť tohto riešenia je O (n).

Program C ++ na odstránenie duplicitných prvkov z netriedeného poľa

Ďalej je uvedený program C ++ na odstránenie duplicitných prvkov z netriedeného poľa:

// Program C ++ na odstránenie duplicitných prvkov z netriedeného poľa
#include
pomocou namespace std;
// Funkcia na odstránenie duplicitných prvkov z netriedeného poľa
void removeDuplicateElements (int arr [], int veľkosť)
{
unordered_map m;
pre (int i = 0; i{
// Vytlačí prvok, ak nie je
// prítomný v hashovej mape
if (m.find (arr [i]) == m.end ())
{
cout << arr [i] << "";
}
// Vložte prvok do hashovacej mapy
m [arr [i]] = pravda;
}
cout << endl;
}
void printArrayElements (int arr [], veľkosť int)
{
pre (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čiatočné pole:" << endl;
printArrayElements (arr1, veľkosť1);
cout << "Pole po odstránení duplikátov:" << 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čiatočné pole:" << endl;
printArrayElements (arr2, veľkosť2);
cout << "Pole po odstránení duplikátov:" << endl;
removeDuplicateElements (arr2, size2);
int arr3 [] = {32, 35, 33, 32, 33, 38, 32, 39};
int size3 = sizeof (arr3) / sizeof (arr3 [0]);
cout << "Počiatočné pole:" << endl;
printArrayElements (arr3, size3);
cout << "Pole po odstránení duplikátov:" << endl;
removeDuplicateElements (arr3, size3);
návrat 0;
}

Výkon:

Počiatočné pole: 
23 35 23 56 67 35 35 54 76
Pole po odstránení duplikátov:
23 35 56 67 54 76
Počiatočné pole:
5 6 1 1 7 5 8 2 7 8
Pole po odstránení duplikátov:
5 6 1 7 8 2
Počiatočné pole:
32 35 33 32 33 38 32 39
Pole po odstránení duplikátov:
32 35 33 38 39

Súvisiace: Ako tlačiť „Ahoj, svet!“ v najobľúbenejších programovacích jazykoch

Program na odstránenie duplicitných prvkov z netriedeného poľa

Ďalej je uvedený program Python na odstránenie duplicitných prvkov z netriedeného poľa:

# Program v Pythone na odstránenie duplicitných prvkov z netriedeného zoznamu
def removeDuplicateElements (arr, veľkosť):
m = {}
pre i v rozsahu (veľkosť):
# Vytlačte prvok, ak nie je
# v slovníku
ak arr [i] nie je v m:
print (arr [i], end = "")
# Vložte prvok do slovníka
m [arr [i]] = 1
print ()
def printListElements (arr, veľkosť):
pre i v rozsahu (veľkosť):
print (arr [i], end = "")
print ()
arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76]
size1 = len (arr1)
print ("Počiatočný zoznam:")
printListElements (arr1, size1)
print ("Zoznam po odstránení duplikátov:")
removeDuplicateElements (arr1, veľkosť1)
arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]
size2 = len (arr2)
print ("Počiatočný zoznam:")
printListElements (arr2, size2)
print ("Zoznam po odstránení duplikátov:")
removeDuplicateElements (arr2, veľkosť2)
arr3 = [32, 35, 33, 32, 33, 38, 32, 39]
size3 = len (arr3)
print ("Počiatočný zoznam:")
printListElements (arr3, size3)
print ("Zoznam po odstránení duplikátov:")
removeDuplicateElements (arr3, size3)

Výkon:

Počiatočné pole: 
23 35 23 56 67 35 35 54 76
Pole po odstránení duplikátov:
23 35 56 67 54 76
Počiatočné pole:
5 6 1 1 7 5 8 2 7 8
Pole po odstránení duplikátov:
5 6 1 7 8 2
Počiatočné pole:
32 35 33 32 33 38 32 39
Pole po odstránení duplikátov:
32 35 33 38 39

Program na odstránenie duplicitných prvkov z netriedeného poľa

Nižšie je uvedený program JavaScript na odstránenie duplicitných prvkov z netriedeného poľa:

// Program JavaScript na odstránenie duplicitných prvkov z netriedeného poľa
// Funkcia na odstránenie duplicitných prvkov z netriedeného poľa
funkcia removeDuplicateElements (arr, veľkosť) {
nech m = nová mapa ();
pre (nech i = 0; i // Vytlačí prvok, ak nie je
// prítomný v hashovej mape
if (m.get (arr [i]) == null) {
document.write (arr [i] + "");
}
// Vložte prvok do hashovacej mapy
m.set (arr [i], true);
}
document.write ("
");
}
funkcia printArrayElements (arr, veľkosť) {
pre (nech i = 0; idocument.write (arr [i] + "");
}
document.write ("
");
}
nech arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76];
nech veľkosť1 = doraz1.dĺžka;
document.write ("Počiatočné pole:" + "
");
printArrayElements (arr1, veľkosť1);
document.write ("Pole po odstránení duplikátov:" + "
");
removeDuplicateElements (arr1, size1);
nech arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8];
nech veľkosť2 = doraz2.dĺžka;
document.write ("Počiatočné pole:" + "
");
printArrayElements (arr2, veľkosť2);
document.write ("Pole po odstránení duplikátov:" + "
");
removeDuplicateElements (arr2, size2);
nech arr3 = [32, 35, 33, 32, 33, 38, 32, 39];
nech veľkosť3 = doraz3.dĺžka;
document.write ("Počiatočné pole:" + "
");
printArrayElements (arr3, size3);
document.write ("Pole po odstránení duplikátov:" + "
");
removeDuplicateElements (arr3, size3);

Výkon:

Počiatočné pole: 
23 35 23 56 67 35 35 54 76
Pole po odstránení duplikátov:
23 35 56 67 54 76
Počiatočné pole:
5 6 1 1 7 5 8 2 7 8
Pole po odstránení duplikátov:
5 6 1 7 8 2
Počiatočné pole:
32 35 33 32 33 38 32 39
Pole po odstránení duplikátov:
32 35 33 38 39

Súvisiace: Ako počítať výskyty danej postavy v reťazci

Ako odstrániť duplicitné prvky z roztriedeného poľa

Vyhlásenie o probléme

Dostanete zoradené pole celých čísel. Musíte odstrániť duplicitné prvky z poľa a vytlačiť pole s jedinečnými prvkami.

Príklad 1: Nech arr = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]

Pole po odstránení duplicitných prvkov: 1 2 4 6 8 9

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

Príklad 2: Nech arr = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]

Pole po odstránení duplicitných prvkov: 1 2 3 4 5

Výstup je teda 1 2 3 4 5.

Prístup k odstráneniu duplicitných prvkov z roztriedeného poľa

Duplicitné prvky môžete z triedeného poľa odstrániť nasledujúcim spôsobom:

  1. Inicializujte indexové premenné i a j na 0.
  2. Iterujte pole.
  3. Ak sa i-tý prvok nerovná (i + 1) -tému prvku, uložte i-tú hodnotu do hodnoty ar [j] a zvýšte hodnotu j.
  4. Zvýšiť hodnotu i v každej iterácii.
  5. Uložte poslednú hodnotu prírastku do prírastku [j].
  6. Nakoniec vráťte novú veľkosť poľa, t.j. j. V poli od indexu 0 do j-1 budú uložené jedinečné prvky.

Poznámka: Časová zložitosť tohto riešenia je O (n).

Program C ++ na odstránenie duplicitných prvkov z roztriedeného poľa

Nižšie je uvedený program C ++ na odstránenie duplicitných prvkov z triedeného poľa:

// Program C ++ na odstránenie duplicitných prvkov z triedeného poľa
#include
pomocou namespace std;
// Funkcia na odstránenie duplicitných prvkov z triedeného poľa
int removeDuplicateElements (int arr [], veľkosť int)
{
int j = 0;
pre (int i = 0; i {
// Ak sa i-tý prvok nerovná (i + 1) prvému prvku,
// potom uloží i-tú hodnotu do arr [j]
if (arr [i]! = arr [i + 1])
{
arr [j] = arr [i];
j ++;
}
}
// Uloženie poslednej hodnoty arr in arr [j]
arr [j ++] = arr [veľkosť-1];
návrat j;
}
void printArrayElements (int arr [], veľkosť int)
{
pre (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čiatočné pole:" << endl;
printArrayElements (arr1, veľkosť1);
cout << "Pole po odstránení duplikátov:" << endl;
size1 = removeDuplicateElements (arr1, size1);
printArrayElements (arr1, veľkosť1);
int arr2 [] = {1, 1, 2, 2, 3, 3, 4, 4, 5, 5};
int size2 = sizeof (arr2) / sizeof (arr2 [0]);
cout << "Počiatočné pole:" << endl;
printArrayElements (arr2, veľkosť2);
cout << "Pole po odstránení duplikátov:" << endl;
size2 = removeDuplicateElements (arr2, size2);
printArrayElements (arr2, veľkosť2);
int arr3 [] = {10, 12, 12, 14, 16, 16, 18, 19, 19};
int size3 = sizeof (arr3) / sizeof (arr3 [0]);
cout << "Počiatočné pole:" << endl;
printArrayElements (arr3, size3);
cout << "Pole po odstránení duplikátov:" << endl;
size3 = removeDuplicateElements (arr3, size3);
printArrayElements (arr3, size3);
návrat 0;
}

Výkon:

Počiatočné pole: 
1 1 1 2 4 6 8 8 9 9
Pole po odstránení duplikátov:
1 2 4 6 8 9
Počiatočné pole:
1 1 2 2 3 3 4 4 5 5
Pole po odstránení duplikátov:
1 2 3 4 5
Počiatočné pole:
10 12 12 14 16 16 18 19 19
Pole po odstránení duplikátov:
10 12 14 16 18 19

Program na odstránenie duplicitných prvkov z roztriedeného poľa

Ďalej je uvedený program Python na odstránenie duplicitných prvkov z triedeného poľa:

# Program v Pythone na odstránenie duplicitných prvkov z triedeného poľa
def removeDuplicateElements (arr, veľkosť):
j = 0
pre i v rozsahu (veľkosť-1):
ak arr [i]! = arr [i + 1]:
arr [j] = arr [i]
j = j + 1
arr [j] = arr [veľkosť-1]
j = j + 1
návrat j
def printListElements (arr, veľkosť):
pre i v rozsahu (veľkosť):
print (arr [i], end = "")
print ()
arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]
size1 = len (arr1)
print ("Počiatočné pole:")
printListElements (arr1, size1)
print ("Pole po odstránení duplikátov:")
size1 = removeDuplicateElements (arr1, size1)
printListElements (arr1, size1)
arr2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
size2 = len (arr2)
print ("Počiatočné pole:")
printListElements (arr2, size2)
print ("Pole po odstránení duplikátov:")
size2 = removeDuplicateElements (arr2, size2)
printListElements (arr2, size2)
arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19]
size3 = len (arr3)
print ("Počiatočné pole:")
printListElements (arr3, size3)
print ("Pole po odstránení duplikátov:")
size3 = removeDuplicateElements (arr3, size3)
printListElements (arr3, size3)

Výkon:

Počiatočné pole: 
1 1 1 2 4 6 8 8 9 9
Pole po odstránení duplikátov:
1 2 4 6 8 9
Počiatočné pole:
1 1 2 2 3 3 4 4 5 5
Pole po odstránení duplikátov:
1 2 3 4 5
Počiatočné pole:
10 12 12 14 16 16 18 19 19
Pole po odstránení duplikátov:
10 12 14 16 18 19

Súvisiace: Úvod do algoritmu zlučovania

Program na odstránenie duplicitných prvkov z roztriedeného poľa

Nižšie je uvedený program JavaScript na odstránenie duplicitných prvkov z triedeného poľa:

// Program JavaScript na odstránenie duplicitných prvkov z triedeného poľa
// Funkcia na odstránenie duplicitných prvkov z triedeného poľa
funkcia removeDuplicateElements (arr, veľkosť)
{
nech j = 0;
pre (nech i = 0; i {
// Ak sa i-tý prvok nerovná (i + 1) prvému prvku,
// potom uloží i-tú hodnotu do arr [j]
if (arr [i]! = arr [i + 1])
{
arr [j] = arr [i];
j ++;
}
}
// Uloženie poslednej hodnoty arr in arr [j]
arr [j ++] = arr [veľkosť-1];
návrat j;
}
funkcia printArrayElements (arr, veľkosť) {
pre (nech i = 0; idocument.write (arr [i] + "");
}
document.write ("
");
}
var arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9];
var veľkosť1 = arr1.length;
document.write ("Počiatočné pole:" + "
");
printArrayElements (arr1, veľkosť1);
document.write ("Pole po odstránení duplikátov:" + "
");
size1 = removeDuplicateElements (arr1, size1);
printArrayElements (arr1, veľkosť1);
var arr2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5];
var veľkosť2 = arr2.length;
document.write ("Počiatočné pole:" + "
");
printArrayElements (arr2, veľkosť2);
document.write ("Pole po odstránení duplikátov:" + "
");
size2 = removeDuplicateElements (arr2, size2);
printArrayElements (arr2, veľkosť2);
var arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19];
var veľkosť3 = doraz3.dĺžka;
document.write ("Počiatočné pole:" + "
");
printArrayElements (arr3, size3);
document.write ("Pole po odstránení duplikátov:" + "
");
size3 = removeDuplicateElements (arr3, size3);
printArrayElements (arr3, size3);

Výkon:

Súvisiace: Ako nájsť najčastejšie sa vyskytujúci znak v reťazci

Počiatočné pole: 
1 1 1 2 4 6 8 8 9 9
Pole po odstránení duplikátov:
1 2 4 6 8 9
Počiatočné pole:
1 1 2 2 3 3 4 4 5 5
Pole po odstránení duplikátov:
1 2 3 4 5
Počiatočné pole:
10 12 12 14 16 16 18 19 19
Pole po odstránení duplikátov:
10 12 14 16 18 19

Precvičte si problémy s reťazcami a zostavami pre ďalší rozhovor

Problémy s reťazcami a poľami patria medzi najčastejšie kladené témy v rámci technických rozhovorov.

Ak hľadáte maximálnu pripravenosť, musíte si vyskúšať niektoré často kladené problémy, ako napríklad skontrolovať, či je reťazec palindróm, ako skontrolovať, či je anagram, nájdite najčastejšie sa vyskytujúci znak v reťazci, ako obrátiť pole, algoritmy triedenia a vyhľadávania založené na poliach, ako obrátiť reťazec, atď.

Email
Ako obrátiť reťazec v C ++, Python a JavaScript

Naučte sa, ako obrátiť reťazec zozadu dopredu v troch rôznych jazykoch.

Prečítajte si Ďalej

Súvisiace témy
  • Programovanie
  • JavaScript
  • Python
  • Výukové programy pre kódovanie
O autorovi
Yuvraj Chandra (40 publikovaných článkov)

Yuvraj je vysokoškolský študent v odbore počítačových vied na indickej univerzite v Dillí. Je vášnivý pre vývoj webových stránok na princípe Full Stack. Ak nepíše, skúma hĺbku rôznych technológií.

Viac od Yuvraja Chandru

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu s technickými tipmi, recenziami, bezplatnými elektronickými knihami a exkluzívnymi ponukami!

Prihláste sa kliknutím tu