Matriisi on kokoelma elementtejä, joilla on samat tietotyypit. Se on lineaarinen tietorakenne ja se on tallennettu vierekkäisiin muistipaikkoihin. Voit suorittaa useita perustoimintoja taulukossa, kuten lisäys, poisto, haku, päivitys, läpikulku jne.

Tässä artikkelissa opit poistamaan päällekkäiset elementit lajiteltuista ja lajittelemattomista taulukoista.

Kuinka poistaa päällekkäisiä elementtejä lajittelemattomasta taulukosta

Ongelma

Sinulle annetaan lajittelematon joukko kokonaislukuja. Sinun on poistettava päällekkäiset elementit taulukosta ja tulostettava taulukko ainutlaatuisilla elementeillä.

Esimerkki 1: Olkoon arr = [23, 35, 23, 56, 67, 35, 35, 54, 76]

Taulukko päällekkäisten elementtien poistamisen jälkeen: 23 35 56 67 54 76

Siten lähtö on 23 35 56 67 54 76.

Esimerkki 2: Olkoon arr = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]

Taulukko päällekkäisten elementtien poistamisen jälkeen: 5 6 1 7 8 2

Siten lähtö on 5 6 1 7 8 2.

Lähestymistapa kaksoiskappaleiden poistamiseksi lajittelemattomasta taulukosta

instagram viewer

Voit poistaa päällekkäisiä elementtejä lajittelemattomasta taulukosta noudattamalla seuraavaa lähestymistapaa:

  1. Alusta hash-kartta, joka tallentaa kaikki ryhmän ainutlaatuiset elementit.
  2. Liikuta taulukkoa.
  3. Tarkista, onko elementti läsnä taulukossa.
  4. Jos elementti on taulukossa, jatka kulkua.
  5. Jos elementtiä ei ole taulukossa, tulosta elementti ja tallenna se hash-karttaan.

Merkintä: Tämän ratkaisun aikakompleksi on O (n).

C ++ -ohjelma päällekkäisten elementtien poistamiseksi lajittelemattomasta taulukosta

Alla on C ++ -ohjelma päällekkäisten elementtien poistamiseksi lajittelemattomasta taulukosta:

// C ++ -ohjelma päällekkäisten elementtien poistamiseksi lajittelemattomasta taulukosta
#sisältää
käyttämällä nimitilaa vakio;
// Toiminto päällekkäisten elementtien poistamiseksi lajittelemattomasta taulukosta
void removeDuplicateElements (int arr [], int-koko)
{
järjestämätön kartta m;
for (int i = 0; i{
// Tulosta elementti, jos se ei ole
// läsnä hash-kartalla
jos (m.find (arr [i]) == m.end ())
{
cout << arr [i] << "";
}
// Lisää elementti hash-karttaan
m [arr [i]] = tosi;
}
cout << endl;
}
void printArrayElements (int arr [], int-koko)
{
for (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 << "Initial Array:" << endl;
printArrayElements (arr1, koko1);
cout << "Taulukko kaksoiskappaleiden poistamisen jälkeen:" << endl;
removeDuplicateElements (arr1, koko1);
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, koko2);
cout << "Taulukko kaksoiskappaleiden poistamisen jälkeen:" << endl;
removeDuplicateElements (arr2, koko2);
int arr3 [] = {32, 35, 33, 32, 33, 38, 32, 39};
int size3 = sizeof (arr3) / sizeof (arr3 [0]);
cout << "Initial Array:" << endl;
printArrayElements (arr3, koko3);
cout << "Taulukko kaksoiskappaleiden poistamisen jälkeen:" << endl;
removeDuplicateElements (arr3, koko3);
paluu 0;
}

Tuotos:

Alkuperäinen taulukko: 
23 35 23 56 67 35 35 54 76
Taulukko kaksoiskappaleiden poistamisen jälkeen:
23 35 56 67 54 76
Alkuperäinen taulukko:
5 6 1 1 7 5 8 2 7 8
Taulukko kaksoiskappaleiden poistamisen jälkeen:
5 6 1 7 8 2
Alkuperäinen taulukko:
32 35 33 32 33 38 32 39
Taulukko kaksoiskappaleiden poistamisen jälkeen:
32 35 33 38 39

Liittyvät: Kuinka tulostaa "Hei, maailma!" suosituimmilla ohjelmointikielillä

Python-ohjelma päällekkäisten elementtien poistamiseksi lajittelemattomasta taulukosta

Alla on Python-ohjelma päällekkäisten elementtien poistamiseksi lajittelemattomasta taulukosta:

# Python-ohjelma päällekkäisten elementtien poistamiseksi lajittelemattomasta luettelosta
def removeDuplicateElements (arr, koko):
m = {}
i: lle alueella (koko):
# Tulosta elementti, jos se ei ole
# esiintyy sanakirjassa
jos arr [i] ei metreinä:
tulosta (arr [i], loppu = "")
# Lisää elementti sanakirjaan
m [arr [i]] = 1
Tulosta()
def printListElements (arr, koko):
i: lle alueella (koko):
tulosta (arr [i], loppu = "")
Tulosta()
arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76]
koko1 = len (arr1)
tulosta ("Alkuperäinen luettelo:")
printListElements (arr1, koko1)
tulosta ("Luettelo kaksoiskappaleiden poistamisen jälkeen:")
removeDuplicateElements (arr1, koko1)
arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]
koko2 = len (arr2)
tulosta ("Alkuperäinen luettelo:")
printListElements (arr2, koko2)
tulosta ("Luettelo kaksoiskappaleiden poistamisen jälkeen:")
removeDuplicateElements (arr2, koko2)
arr3 = [32, 35, 33, 32, 33, 38, 32, 39]
size3 = len (arr3)
tulosta ("Alkuperäinen luettelo:")
printListElements (arr3, koko3)
tulosta ("Luettelo kaksoiskappaleiden poistamisen jälkeen:")
removeDuplicateElements (arr3, koko3)

Tuotos:

Alkuperäinen taulukko: 
23 35 23 56 67 35 35 54 76
Taulukko kaksoiskappaleiden poistamisen jälkeen:
23 35 56 67 54 76
Alkuperäinen taulukko:
5 6 1 1 7 5 8 2 7 8
Taulukko kaksoiskappaleiden poistamisen jälkeen:
5 6 1 7 8 2
Alkuperäinen taulukko:
32 35 33 32 33 38 32 39
Taulukko kaksoiskappaleiden poistamisen jälkeen:
32 35 33 38 39

JavaScript-ohjelma päällekkäisten elementtien poistamiseksi lajittelemattomasta taulukosta

Alla on JavaScript-ohjelma päällekkäisten elementtien poistamiseksi lajittelemattomasta taulukosta:

// JavaScript-ohjelma päällekkäisten elementtien poistamiseksi lajittelemattomasta taulukosta
// Toiminto päällekkäisten elementtien poistamiseksi lajittelemattomasta taulukosta
funktio removeDuplicateElements (arr, koko) {
olkoon m = uusi kartta ();
for (olkoon i = 0; i // Tulosta elementti, jos se ei ole
// läsnä hash-kartalla
jos (m.get (arr [i]) == null) {
document.write (arr [i] + "");
}
// Lisää elementti hash-karttaan
m.set (arr [i], tosi);
}
document.write ("
");
}
funktio printArrayElements (arr, koko) {
for (olkoon i = 0; idocument.write (arr [i] + "");
}
document.write ("
");
}
olkoon arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76];
olkoon koko1 = arr1.pituus;
document.write ("Alustava taulukko:" + "
");
printArrayElements (arr1, koko1);
document.write ("Taulukko kaksoiskappaleiden poistamisen jälkeen:" + "
");
removeDuplicateElements (arr1, koko1);
olkoon arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8];
olkoon koko2 = arr2.pituus;
document.write ("Alustava taulukko:" + "
");
printArrayElements (arr2, koko2);
document.write ("Taulukko kaksoiskappaleiden poistamisen jälkeen:" + "
");
removeDuplicateElements (arr2, koko2);
olkoon arr3 = [32, 35, 33, 32, 33, 38, 32, 39];
olkoon koko3 = arr3.pituus;
document.write ("Alustava taulukko:" + "
");
printArrayElements (arr3, koko3);
document.write ("Taulukko kaksoiskappaleiden poistamisen jälkeen:" + "
");
removeDuplicateElements (arr3, koko3);

Tuotos:

Alkuperäinen taulukko: 
23 35 23 56 67 35 35 54 76
Taulukko kaksoiskappaleiden poistamisen jälkeen:
23 35 56 67 54 76
Alkuperäinen taulukko:
5 6 1 1 7 5 8 2 7 8
Taulukko kaksoiskappaleiden poistamisen jälkeen:
5 6 1 7 8 2
Alkuperäinen taulukko:
32 35 33 32 33 38 32 39
Taulukko kaksoiskappaleiden poistamisen jälkeen:
32 35 33 38 39

Liittyvät: Kuinka laskea merkkijonossa esiintyvän merkin esiintymät

Kuinka poistaa päällekkäisiä elementtejä lajitellusta taulukosta

Ongelma

Sinulle annetaan lajiteltu joukko kokonaislukuja. Sinun on poistettava päällekkäiset elementit taulukosta ja tulostettava taulukko ainutlaatuisilla elementeillä.

Esimerkki 1: Olkoon arr = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]

Taulukko päällekkäisten elementtien poistamisen jälkeen: 1 2 4 6 8 9

Siten lähtö on 1 2 4 6 8 9.

Esimerkki 2: Olkoon arr = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]

Taulukko päällekkäisten elementtien poistamisen jälkeen: 1 2 3 4 5

Siten lähtö on 1 2 3 4 5.

Lähestymistapa päällekkäisten elementtien poistamiseksi lajitellusta taulukosta

Voit poistaa päällekkäisiä elementtejä lajitellusta taulukosta noudattamalla seuraavaa lähestymistapaa:

  1. Alusta indeksimuuttujat i ja j 0: lla.
  2. Toista taulukko.
  3. Jos i: s elementti ei ole sama kuin (i + 1): n elementti, tallenna i-arvo arr: iin [j] ja lisää j: n arvoa.
  4. Lisää i: n arvoa kussakin iteraatiossa.
  5. Tallenna viimeinen arr-arvo arvoon arr [j].
  6. Palauta lopuksi ryhmän uusi koko eli j. Yksilölliset elementit tallennetaan ryhmään indeksistä 0 j-1.

Merkintä: Tämän ratkaisun aikakompleksi on O (n).

C ++ -ohjelma päällekkäisten elementtien poistamiseksi lajitellusta taulukosta

Alla on C ++ -ohjelma päällekkäisten elementtien poistamiseksi lajitellusta taulukosta:

// C ++ -ohjelma päällekkäisten elementtien poistamiseksi lajitellusta taulukosta
#sisältää
käyttämällä nimitilaa vakio;
// Toiminto päällekkäisten elementtien poistamiseksi lajitellusta taulukosta
int removeDuplicateElements (int arr [], int-koko)
{
int j = 0;
for (int i = 0; i {
// Jos i-elementti ei ole yhtä suuri kuin (i + 1): s elementti,
// tallenna sitten i-arvo arr: iin [j]
jos (arr [i]! = arr [i + 1])
{
arr [j] = arr [i];
j ++;
}
}
// Arr: n viimeisen arvon tallentaminen arr: iin [j]
arr [j ++] = arr [koko-1];
paluu j;
}
void printArrayElements (int arr [], int-koko)
{
for (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 << "Initial Array:" << endl;
printArrayElements (arr1, koko1);
cout << "Taulukko kaksoiskappaleiden poistamisen jälkeen:" << endl;
size1 = removeDuplicateElements (arr1, koko1);
printArrayElements (arr1, koko1);
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, koko2);
cout << "Taulukko kaksoiskappaleiden poistamisen jälkeen:" << endl;
size2 = removeDuplicateElements (arr2, koko2);
printArrayElements (arr2, koko2);
int arr3 [] = {10, 12, 12, 14, 16, 16, 18, 19, 19};
int size3 = sizeof (arr3) / sizeof (arr3 [0]);
cout << "Initial Array:" << endl;
printArrayElements (arr3, koko3);
cout << "Taulukko kaksoiskappaleiden poistamisen jälkeen:" << endl;
size3 = removeDuplicateElements (arr3, koko3);
printArrayElements (arr3, koko3);
paluu 0;
}

Tuotos:

Alkuperäinen taulukko: 
1 1 1 2 4 6 8 8 9 9
Taulukko kaksoiskappaleiden poistamisen jälkeen:
1 2 4 6 8 9
Alkuperäinen taulukko:
1 1 2 2 3 3 4 4 5 5
Taulukko kaksoiskappaleiden poistamisen jälkeen:
1 2 3 4 5
Alkuperäinen taulukko:
10 12 12 14 16 16 18 19 19
Taulukko kaksoiskappaleiden poistamisen jälkeen:
10 12 14 16 18 19

Python-ohjelma päällekkäisten elementtien poistamiseksi lajitellusta taulukosta

Alla on Python-ohjelma päällekkäisten elementtien poistamiseksi lajitellusta taulukosta:

# Python-ohjelma päällekkäisten elementtien poistamiseksi lajitellusta taulukosta
def removeDuplicateElements (arr, koko):
j = 0
i: lle alueella (koko-1):
jos arr [i]! = arr [i + 1]:
arr [j] = arr [i]
j = j + 1
arr [j] = arr [koko-1]
j = j + 1
paluu j
def printListElements (arr, koko):
i: lle alueella (koko):
tulosta (arr [i], loppu = "")
Tulosta()
arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]
koko1 = len (arr1)
tulosta ("Alustava taulukko:")
printListElements (arr1, koko1)
tulosta ("Taulukko kaksoiskappaleiden poistamisen jälkeen:")
size1 = removeDuplicateElements (arr1, koko1)
printListElements (arr1, koko1)
arr2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
koko2 = len (arr2)
tulosta ("Alustava taulukko:")
printListElements (arr2, koko2)
tulosta ("Taulukko kaksoiskappaleiden poistamisen jälkeen:")
size2 = removeDuplicateElements (arr2, koko2)
printListElements (arr2, koko2)
arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19]
size3 = len (arr3)
tulosta ("Alustava taulukko:")
printListElements (arr3, koko3)
tulosta ("Taulukko kaksoiskappaleiden poistamisen jälkeen:")
size3 = removeDuplicateElements (arr3, koko3)
printListElements (arr3, koko3)

Tuotos:

Alkuperäinen taulukko: 
1 1 1 2 4 6 8 8 9 9
Taulukko kaksoiskappaleiden poistamisen jälkeen:
1 2 4 6 8 9
Alkuperäinen taulukko:
1 1 2 2 3 3 4 4 5 5
Taulukko kaksoiskappaleiden poistamisen jälkeen:
1 2 3 4 5
Alkuperäinen taulukko:
10 12 12 14 16 16 18 19 19
Taulukko kaksoiskappaleiden poistamisen jälkeen:
10 12 14 16 18 19

Liittyvät: Johdatus yhdistämisen lajittelualgoritmiin

JavaScript-ohjelma päällekkäisten elementtien poistamiseksi lajitellusta taulukosta

Alla on JavaScript-ohjelma päällekkäisten elementtien poistamiseksi lajitellusta taulukosta:

// JavaScript-ohjelma päällekkäisten elementtien poistamiseksi lajitellusta taulukosta
// Toiminto päällekkäisten elementtien poistamiseksi lajitellusta taulukosta
toiminto removeDuplicateElements (arr, koko)
{
olkoon j = 0;
for (olkoon i = 0; i {
// Jos i-elementti ei ole yhtä suuri kuin (i + 1): s elementti,
// tallenna sitten i-arvo arr: iin [j]
jos (arr [i]! = arr [i + 1])
{
arr [j] = arr [i];
j ++;
}
}
// Arr: n viimeisen arvon tallentaminen arr: iin [j]
arr [j ++] = arr [koko-1];
paluu j;
}
funktio printArrayElements (arr, koko) {
for (olkoon i = 0; idocument.write (arr [i] + "");
}
document.write ("
");
}
var arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9];
var koko1 = arr1.pituus;
document.write ("Alustava taulukko:" + "
");
printArrayElements (arr1, koko1);
document.write ("Taulukko kaksoiskappaleiden poistamisen jälkeen:" + "
");
size1 = removeDuplicateElements (arr1, koko1);
printArrayElements (arr1, koko1);
var arr2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5];
var koko2 = arr2.pituus;
document.write ("Alustava taulukko:" + "
");
printArrayElements (arr2, koko2);
document.write ("Taulukko kaksoiskappaleiden poistamisen jälkeen:" + "
");
size2 = removeDuplicateElements (arr2, koko2);
printArrayElements (arr2, koko2);
var arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19];
var koko3 = arr3.pituus;
document.write ("Alustava taulukko:" + "
");
printArrayElements (arr3, koko3);
document.write ("Taulukko kaksoiskappaleiden poistamisen jälkeen:" + "
");
size3 = removeDuplicateElements (arr3, koko3);
printArrayElements (arr3, koko3);

Tuotos:

Liittyvät: Kuinka löytää merkkijonossa useimmin esiintyvä merkki

Alkuperäinen taulukko: 
1 1 1 2 4 6 8 8 9 9
Taulukko kaksoiskappaleiden poistamisen jälkeen:
1 2 4 6 8 9
Alkuperäinen taulukko:
1 1 2 2 3 3 4 4 5 5
Taulukko kaksoiskappaleiden poistamisen jälkeen:
1 2 3 4 5
Alkuperäinen taulukko:
10 12 12 14 16 16 18 19 19
Taulukko kaksoiskappaleiden poistamisen jälkeen:
10 12 14 16 18 19

Harjoittele merkkijono- ja taulukko-ongelmia seuraavaan haastatteluun

Merkkijono- ja matriisiongelmat ovat kysyttyjä aiheita teknisissä haastatteluissa.

Jos haluat olla mahdollisimman valmistautunut, sinun on harjoitettava joitain usein kysyttyjä ongelmia, kuten kuinka tarkistaa, onko merkkijono palindromi, miten tarkistaa, onko merkkijono anagrammi, etsi merkkijonossa yleisimmin esiintyvä merkki, taulun kääntäminen, taulukkoon perustuvat algoritmit lajittelu ja haku, merkkijonon kääntäminen jne.

Sähköposti
Merkkijonon kääntäminen C ++: ssa, Pythonissa ja JavaScriptissä

Opi kääntämään merkkijono taaksepäin kolmella eri kielellä.

Lue seuraava

Liittyvät aiheet
  • Ohjelmointi
  • JavaScript
  • Python
  • Koodausoppaat
Kirjailijasta
Yuvraj Chandra (40 artikkelia julkaistu)

Yuvraj on tietojenkäsittelytieteen perustutkinto-opiskelija Delhin yliopistossa Intiassa. Hän on intohimoisesti Full Stack -verkkokehityksestä. Kun hän ei kirjoita, hän tutkii eri tekniikoiden syvyyttä.

Lisää artistilta Yuvraj Chandra

tilaa uutiskirjeemme

Liity uutiskirjeeseemme, jossa on teknisiä vinkkejä, arvosteluja, ilmaisia ​​e-kirjoja ja erikoistarjouksia!

Tilaa napsauttamalla tätä