Matrika je zbirka elementov z istimi podatkovnimi vrstami. To je linearna podatkovna struktura in je shranjena na sosednjih pomnilniških lokacijah. Na matriki lahko izvedete veliko osnovnih operacij, kot so vstavljanje, brisanje, iskanje, posodobitev, prehod itd.

V tem članku boste izvedeli, kako odstraniti podvojene elemente iz razvrščenih in nesortiranih nizov.

Kako odstraniti podvojene elemente iz nesortirane matrike

Izjava o težavi

Dobili ste nesortirano celo število. Iz matrike morate odstraniti podvojene elemente in matriko natisniti z unikatnimi elementi.

Primer 1: Naj arr = [23, 35, 23, 56, 67, 35, 35, 54, 76]

Niz po odstranitvi podvojenih elementov: 23 35 56 67 54 76

Tako je izhod 23 35 56 67 54 76.

2. primer: Naj bo arr = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]

Niz po odstranitvi podvojenih elementov: 5 6 1 7 8 2

Tako je rezultat 5 6 1 7 8 2.

Pristop za odstranjevanje podvojenih elementov iz nesortirane matrike

Podvojene elemente lahko iz nesortirane matrike odstranite tako, da sledite spodnjemu pristopu:

  1. Inicializirajte hash map, ki bo shranil vse edinstvene elemente polja.
  2. Prehod matrike.
  3. Preverite, ali je element prisoten v matriki.
  4. Če je element prisoten v matriki, nadaljujte s prehajanjem.
  5. Če element ni v matriki, ga natisnite in shranite v zemljevid zgoščevanja.

Opomba: Časovna zapletenost te rešitve je O (n).

Program C ++ za odstranjevanje podvojenih elementov iz nesortirane matrike

Spodaj je program C ++ za odstranjevanje podvojenih elementov iz nesortirane matrike:

// Program C ++ za odstranjevanje podvojenih elementov iz nesortirane matrike
#include
uporaba imenskega prostora std;
// Funkcija odstranjevanja podvojenih elementov iz nesortirane matrike
void removeDuplicateElements (int arr [], int velikost)
{
neurejena_mapa m;
za (int i = 0; jaz{
// Natisni element, če ni
// prisotno na zemljevidu razprševanja
če (m.find (arr [i]) == m.end ())
{
cout << arr [i] << "";
}
// Vstavimo element v zemljevid razprševanja
m [arr [i]] = res;
}
cout << endl;
}
void printArrayElements (int arr [], int velikost)
{
za (int i = 0; jaz{
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 << "Začetna matrika:" << endl;
printArrayElements (arr1, size1);
cout << "Polje po odstranitvi dvojnikov:" << endl;
removeDuplicateElements (arr1, size1);
int arr2 [] = {5, 6, 1, 1, 7, 5, 8, 2, 7, 8};
int size2 = sizeof (arr2) / sizeof (arr2 [0]);
cout << "Začetna matrika:" << endl;
printArrayElements (arr2, size2);
cout << "Polje po odstranitvi dvojnikov:" << endl;
removeDuplicateElements (arr2, size2);
int arr3 [] = {32, 35, 33, 32, 33, 38, 32, 39};
int size3 = sizeof (arr3) / sizeof (arr3 [0]);
cout << "Začetna matrika:" << endl;
printArrayElements (arr3, size3);
cout << "Polje po odstranitvi dvojnikov:" << endl;
removeDuplicateElements (arr3, size3);
vrnitev 0;
}

Izhod:

Začetno polje: 
23 35 23 56 67 35 35 54 76
Matrika po odstranitvi dvojnikov:
23 35 56 67 54 76
Začetno polje:
5 6 1 1 7 5 8 2 7 8
Matrika po odstranitvi dvojnikov:
5 6 1 7 8 2
Začetno polje:
32 35 33 32 33 38 32 39
Matrika po odstranitvi dvojnikov:
32 35 33 38 39

Sorodno: Kako natisniti "Zdravo, svet!" v najbolj priljubljenih programskih jezikih

Program Python za odstranjevanje podvojenih elementov iz nesortirane matrike

Spodaj je program Python za odstranjevanje podvojenih elementov iz nesortirane matrike:

# Program Python za odstranjevanje podvojenih elementov z nerazvrščenega seznama
def removeDuplicateElements (arr, velikost):
m = {}
za i v območju (velikost):
# Natisnite element, če ni
# v slovarju
če arr [i] ni v m:
natisni (arr [i], end = "")
# Vstavite element v slovar
m [arr [i]] = 1
natisni ()
def printListElements (dol, velikost):
za i v območju (velikost):
natisni (arr [i], end = "")
natisni ()
arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76]
velikost1 = len (arr1)
print ("Začetni seznam:")
printListElements (arr1, size1)
print ("Seznam po odstranitvi dvojnikov:")
removeDuplicateElements (arr1, size1)
arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]
velikost2 = len (arr2)
print ("Začetni seznam:")
printListElements (arr2, size2)
print ("Seznam po odstranitvi dvojnikov:")
removeDuplicateElements (arr2, size2)
arr3 = [32, 35, 33, 32, 33, 38, 32, 39]
size3 = len (arr3)
print ("Začetni seznam:")
printListElements (arr3, size3)
print ("Seznam po odstranitvi dvojnikov:")
removeDuplicateElements (arr3, size3)

Izhod:

Začetno polje: 
23 35 23 56 67 35 35 54 76
Matrika po odstranitvi dvojnikov:
23 35 56 67 54 76
Začetno polje:
5 6 1 1 7 5 8 2 7 8
Matrika po odstranitvi dvojnikov:
5 6 1 7 8 2
Začetno polje:
32 35 33 32 33 38 32 39
Matrika po odstranitvi dvojnikov:
32 35 33 38 39

Program JavaScript za odstranjevanje podvojenih elementov iz nesortirane matrike

Spodaj je program JavaScript za odstranjevanje podvojenih elementov iz nesortirane matrike:

// Program JavaScript za odstranjevanje podvojenih elementov iz nesortirane matrike
// Funkcija odstranjevanja podvojenih elementov iz nesortirane matrike
funkcija removeDuplicateElements (arr, velikost) {
naj je m = nov zemljevid ();
za (naj je i = 0; i // Natisni element, če ni
// prisotno na zemljevidu razprševanja
if (m.get (arr [i]) == null) {
document.write (arr [i] + "");
}
// Vstavimo element v zemljevid razprševanja
m.set (arr [i], true);
}
document.write ("
");
}
funkcija printArrayElements (arr, velikost) {
za (naj je i = 0; jazdocument.write (arr [i] + "");
}
document.write ("
");
}
naj bo arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76];
naj size1 = arr1.length;
document.write ("Začetno polje:" + "
");
printArrayElements (arr1, size1);
document.write ("Polje po odstranitvi dvojnikov:" + "
");
removeDuplicateElements (arr1, size1);
naj bo arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8];
naj velikost2 = arr2.length;
document.write ("Začetno polje:" + "
");
printArrayElements (arr2, size2);
document.write ("Polje po odstranitvi dvojnikov:" + "
");
removeDuplicateElements (arr2, size2);
naj bo arr3 = [32, 35, 33, 32, 33, 38, 32, 39];
naj size3 = arr3.length;
document.write ("Začetno polje:" + "
");
printArrayElements (arr3, size3);
document.write ("Polje po odstranitvi dvojnikov:" + "
");
removeDuplicateElements (arr3, size3);

Izhod:

Začetno polje: 
23 35 23 56 67 35 35 54 76
Matrika po odstranitvi dvojnikov:
23 35 56 67 54 76
Začetno polje:
5 6 1 1 7 5 8 2 7 8
Matrika po odstranitvi dvojnikov:
5 6 1 7 8 2
Začetno polje:
32 35 33 32 33 38 32 39
Matrika po odstranitvi dvojnikov:
32 35 33 38 39

Sorodno: Kako prešteti pojavitve danega lika v nizu

Kako odstraniti podvojene elemente iz razvrščenega polja

Izjava o težavi

Dobili boste razvrščeno polje celih števil. Iz matrike morate odstraniti podvojene elemente in matriko natisniti z unikatnimi elementi.

Primer 1: Naj arr = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]

Niz po odstranitvi podvojenih elementov: 1 2 4 6 8 9

Tako je rezultat 1 2 4 6 8 9.

2. primer: Naj bo arr = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]

Niz po odstranitvi podvojenih elementov: 1 2 3 4 5

Tako je rezultat 1 2 3 4 5.

Pristop za odstranjevanje podvojenih elementov iz razvrščenega polja

Podvojene elemente lahko iz razvrščenega polja odstranite tako, da sledite spodnjemu pristopu:

  1. Inicializirajte indeksni spremenljivki i in j z 0.
  2. Ponovite matriko.
  3. Če i-i element ni enak (i ​​+ 1) -temu elementu, shranite i-to vrednost v arr [j] in povečajte vrednost j.
  4. V vsaki ponovitvi povečajte vrednost i.
  5. Shrani zadnjo vrednost arr v arr [j].
  6. Končno vrnite novo velikost polja, tj. J. Unikatni elementi bodo shranjeni v matriki od indeksa 0 do j-1.

Opomba: Časovna zapletenost te rešitve je O (n).

Program C ++ za odstranjevanje podvojenih elementov iz razvrščenega polja

Spodaj je program C ++ za odstranjevanje podvojenih elementov iz razvrščenega polja:

// Program C ++ za odstranjevanje podvojenih elementov iz razvrščenega polja
#include
uporaba imenskega prostora std;
// Funkcija odstranjevanja podvojenih elementov iz razvrščenega polja
int removeDuplicateElements (int arr [], int velikost)
{
int j = 0;
za (int i = 0; i {
// Če i-i element ni enak (i ​​+ 1) -temu elementu,
// nato shranimo i-to vrednost v arr [j]
če (arr [i]! = arr [i + 1])
{
arr [j] = arr [i];
j ++;
}
}
// Shranjevanje zadnje vrednosti arr v arr [j]
arr [j ++] = arr [velikost-1];
vrnitev j;
}
void printArrayElements (int arr [], int velikost)
{
za (int i = 0; jaz{
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 << "Začetna matrika:" << endl;
printArrayElements (arr1, size1);
cout << "Polje po odstranitvi dvojnikov:" << 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 << "Začetna matrika:" << endl;
printArrayElements (arr2, size2);
cout << "Polje po odstranitvi dvojnikov:" << 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 << "Začetna matrika:" << endl;
printArrayElements (arr3, size3);
cout << "Polje po odstranitvi dvojnikov:" << endl;
size3 = removeDuplicateElements (arr3, size3);
printArrayElements (arr3, size3);
vrnitev 0;
}

Izhod:

Začetno polje: 
1 1 1 2 4 6 8 8 9 9
Matrika po odstranitvi dvojnikov:
1 2 4 6 8 9
Začetno polje:
1 1 2 2 3 3 4 4 5 5
Matrika po odstranitvi dvojnikov:
1 2 3 4 5
Začetno polje:
10 12 12 14 16 16 18 19 19
Matrika po odstranitvi dvojnikov:
10 12 14 16 18 19

Program Python za odstranjevanje podvojenih elementov iz razvrščenega polja

Spodaj je program Python za odstranjevanje podvojenih elementov iz razvrščenega polja:

# Program Python za odstranjevanje podvojenih elementov iz razvrščenega polja
def removeDuplicateElements (arr, velikost):
j = 0
za i v območju (velikost-1):
če je arr [i]! = arr [i + 1]:
arr [j] = arr [i]
j = j + 1
arr [j] = arr [velikost-1]
j = j + 1
vrnitev j
def printListElements (dol, velikost):
za i v območju (velikost):
natisni (arr [i], end = "")
natisni ()
arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]
velikost1 = len (arr1)
print ("Začetna matrika:")
printListElements (arr1, size1)
print ("Polje po odstranitvi dvojnikov:")
size1 = removeDuplicateElements (arr1, size1)
printListElements (arr1, size1)
arr2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
velikost2 = len (arr2)
print ("Začetna matrika:")
printListElements (arr2, size2)
print ("Polje po odstranitvi dvojnikov:")
size2 = removeDuplicateElements (arr2, size2)
printListElements (arr2, size2)
arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19]
size3 = len (arr3)
print ("Začetna matrika:")
printListElements (arr3, size3)
print ("Polje po odstranitvi dvojnikov:")
size3 = removeDuplicateElements (arr3, size3)
printListElements (arr3, size3)

Izhod:

Začetno polje: 
1 1 1 2 4 6 8 8 9 9
Matrika po odstranitvi dvojnikov:
1 2 4 6 8 9
Začetno polje:
1 1 2 2 3 3 4 4 5 5
Matrika po odstranitvi dvojnikov:
1 2 3 4 5
Začetno polje:
10 12 12 14 16 16 18 19 19
Matrika po odstranitvi dvojnikov:
10 12 14 16 18 19

Sorodno: Uvod v algoritem sortiranja spajanja

Program JavaScript za odstranjevanje podvojenih elementov iz razvrščenega polja

Spodaj je program JavaScript za odstranjevanje podvojenih elementov iz razvrščenega polja:

// Program JavaScript za odstranjevanje podvojenih elementov iz razvrščenega polja
// Funkcija odstranjevanja podvojenih elementov iz razvrščenega polja
funkcija removeDuplicateElements (arr, velikost)
{
naj bo j = 0;
za (naj je i = 0; i {
// Če i-i element ni enak (i ​​+ 1) -temu elementu,
// nato shranimo i-to vrednost v arr [j]
če (arr [i]! = arr [i + 1])
{
arr [j] = arr [i];
j ++;
}
}
// Shranjevanje zadnje vrednosti arr v arr [j]
arr [j ++] = arr [velikost-1];
vrnitev j;
}
funkcija printArrayElements (arr, velikost) {
za (naj je i = 0; jazdocument.write (arr [i] + "");
}
document.write ("
");
}
var arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9];
var size1 = arr1.length;
document.write ("Začetno polje:" + "
");
printArrayElements (arr1, size1);
document.write ("Polje po odstranitvi dvojnikov:" + "
");
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 ("Začetno polje:" + "
");
printArrayElements (arr2, size2);
document.write ("Polje po odstranitvi dvojnikov:" + "
");
size2 = removeDuplicateElements (arr2, size2);
printArrayElements (arr2, size2);
var arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19];
var size3 = arr3.length;
document.write ("Začetno polje:" + "
");
printArrayElements (arr3, size3);
document.write ("Polje po odstranitvi dvojnikov:" + "
");
size3 = removeDuplicateElements (arr3, size3);
printArrayElements (arr3, size3);

Izhod:

Sorodno: Kako najti najpogostejši lik v nizu

Začetno polje: 
1 1 1 2 4 6 8 8 9 9
Matrika po odstranitvi dvojnikov:
1 2 4 6 8 9
Začetno polje:
1 1 2 2 3 3 4 4 5 5
Matrika po odstranitvi dvojnikov:
1 2 3 4 5
Začetno polje:
10 12 12 14 16 16 18 19 19
Matrika po odstranitvi dvojnikov:
10 12 14 16 18 19

Vadite težave z nizi in matriko za naslednji intervju

Težave z nizi in nizi so med najbolj vprašanimi temami v tehničnih intervjujih.

Če želite biti čim bolj pripravljeni, morate vaditi nekaj najpogostejših problemov, na primer kako preveriti, ali je niz palindrom, kako preveriti, ali je niz anagram, poiščite najpogostejši znak v nizu, kako obrniti matriko, algoritme za razvrščanje in iskanje na podlagi nizov, kako obrniti niz, itd.

E-naslov
Kako obrniti niz v C ++, Python in JavaScript

Naučite se obrniti niz nazaj na spredaj v treh različnih jezikih.

Preberite Naprej

Sorodne teme
  • Programiranje
  • JavaScript
  • Python
  • Vadnice za kodiranje
O avtorju
Yuvraj Chandra (Objavljeno 40 člankov)

Yuvraj je dodiplomski študent računalništva na Univerzi v Delhiju v Indiji. Navdušen je nad spletnim razvojem Full Stack. Ko ne piše, raziskuje globino različnih tehnologij.

Več od Yuvraj Chandra

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, preglede, brezplačne e-knjige in ekskluzivne ponudbe!

Kliknite tukaj, da se naročite