Massiiv on samade andmetüüpidega elementide kogum. See on lineaarne andmestruktuur ja seda hoitakse külgnevates mälupaikades. Massiivil saate teha palju põhitoiminguid, näiteks sisestamine, kustutamine, otsing, värskendamine, läbimine jne.

Sellest artiklist saate teada, kuidas eemaldada dubleeritud elemente sorteeritud ja sorteerimata massiividest.

Kuidas eemaldada sorteerimata massiivist dubleerivad elemendid

Probleemipüstituses

Teile antakse sorteerimata täisarvude massiiv. Peate massiivist eemaldama duplikaatelemendid ja massiivi unikaalsete elementidega printima.

Näide 1: Olgu arr = [23, 35, 23, 56, 67, 35, 35, 54, 76]

Massiiv pärast duplikaatelementide eemaldamist: 23 35 56 67 54 76

Seega on väljund 23 35 56 67 54 76.

Näide 2: Olgu arr = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]

Massiiv pärast duplikaatelementide eemaldamist: 5 6 1 7 8 2

Seega on väljundiks 5 6 1 7 8 2.

Lähenemisviis dubleerivate elementide eemaldamiseks sorteerimata massiivist

Sordimata massiivilt saate dubleerivad elemendid eemaldada, järgides alltoodud lähenemisviisi:

instagram viewer
  1. Alustage räsikaart, kuhu salvestatakse massiivi kõik unikaalsed elemendid.
  2. Massiivi läbimine.
  3. Kontrollige, kas element on massiivis olemas.
  4. Kui element on massiivis olemas, jätkake läbimist.
  5. Kui elementi massiivis pole, printige element ja salvestage see räsikaardile.

Märge: Selle lahenduse ajaline keerukus on O (n).

C ++ programm sortimata massiivi duplikaatide eemaldamiseks

Allpool on C ++ programm sortimata massiivi duplikaatide eemaldamiseks:

// C ++ programm sortimata massiivi duplikaatide eemaldamiseks
# kaasata
nimeruumi kasutamine std;
// Funktsioon dubleerivate elementide eemaldamiseks sorteerimata massiivist
void removeDuplicateElements (int arr [], int suurus)
{
tellimata_kaart m;
for (int i = 0; i{
// Printige element, kui see pole nii
// esineda räsikaardil
kui (m.leidke (arr [i]) == m.end ())
{
cout << arr [i] << "";
}
// Sisestage element räsikaardile
m [arr [i]] = tõene;
}
cout << endl;
}
void printArrayElements (int arr [], int suurus)
{
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 << "Algmassiiv:" << endl;
printArrayElements (arr1, suurus1);
cout << "Massiiv pärast duplikaatide eemaldamist:" << endl;
removeDuplicateElements (arr1, suurus1);
int arr2 [] = {5, 6, 1, 1, 7, 5, 8, 2, 7, 8};
int size2 = sizeof (arr2) / sizeof (arr2 [0]);
cout << "Algmassiiv:" << endl;
printArrayElements (arr2, suurus2);
cout << "Massiiv pärast duplikaatide eemaldamist:" << endl;
removeDuplicateElements (arr2, suurus2);
int arr3 [] = {32, 35, 33, 32, 33, 38, 32, 39};
int size3 = sizeof (arr3) / sizeof (arr3 [0]);
cout << "Algmassiiv:" << endl;
printArrayElements (arr3, suurus3);
cout << "Massiiv pärast duplikaatide eemaldamist:" << endl;
removeDuplicateElements (arr3, suurus3);
tagastama 0;
}

Väljund:

Esialgne massiiv: 
23 35 23 56 67 35 35 54 76
Massiiv pärast duplikaatide eemaldamist:
23 35 56 67 54 76
Esialgne massiiv:
5 6 1 1 7 5 8 2 7 8
Massiiv pärast duplikaatide eemaldamist:
5 6 1 7 8 2
Esialgne massiiv:
32 35 33 32 33 38 32 39
Massiiv pärast duplikaatide eemaldamist:
32 35 33 38 39

Seotud: Kuidas printida "Tere, maailm!" kõige populaarsemates programmeerimiskeeltes

Pythoni programm dubleerivate elementide eemaldamiseks sorteerimata massiivist

Allpool on Python programm duplikaatelementide eemaldamiseks sorteerimata massiivist:

# Pythoni programm duplikaatelementide eemaldamiseks sorteerimata loendist
def removeDuplicateElements (arr, suurus):
m = {}
i jaoks vahemikus (suurus):
# Printige element, kui see pole nii
# esinevad sõnastikus
kui arr [i] pole meetrites:
print (arr [i], end = "")
# Sisestage element sõnastikku
m [arr [i]] = 1
print ()
def printListElements (arr, suurus):
i jaoks vahemikus (suurus):
print (arr [i], end = "")
print ()
arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76]
suurus1 = len (arr1)
print ("Esialgne loend:")
printListElements (arr1, suurus1)
print ("Loend pärast duplikaatide eemaldamist:")
removeDuplicateElements (arr1, suurus1)
arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]
suurus2 = len (arr2)
print ("Esialgne loend:")
printListElements (arr2, size2)
print ("Loend pärast duplikaatide eemaldamist:")
removeDuplicateElements (arr2, suurus2)
arr3 = [32, 35, 33, 32, 33, 38, 32, 39]
suurus3 = len (arr3)
print ("Esialgne loend:")
printListElements (arr3, suurus3)
print ("Loend pärast duplikaatide eemaldamist:")
removeDuplicateElements (arr3, suurus3)

Väljund:

Esialgne massiiv: 
23 35 23 56 67 35 35 54 76
Massiiv pärast duplikaatide eemaldamist:
23 35 56 67 54 76
Esialgne massiiv:
5 6 1 1 7 5 8 2 7 8
Massiiv pärast duplikaatide eemaldamist:
5 6 1 7 8 2
Esialgne massiiv:
32 35 33 32 33 38 32 39
Massiiv pärast duplikaatide eemaldamist:
32 35 33 38 39

JavaScripti programm dubleerivate elementide eemaldamiseks sorteerimata massiivist

Allpool on JavaScripti programm duplikaatelementide eemaldamiseks sorteerimata massiivist:

// JavaScripti programm duplikaatelementide eemaldamiseks sorteerimata massiivist
// Funktsioon dubleerivate elementide eemaldamiseks sorteerimata massiivist
funktsioon removeDuplicateElements (arr, suurus) {
olgu m = uus kaart ();
for (olgu i = 0; i // Printige element, kui see pole nii
// esineda räsikaardil
kui (m.get (arr [i]) == null) {
document.write (arr [i] + "");
}
// Sisestage element räsikaardile
m.set (arr [i], tõene);
}
document.write ("
");
}
funktsioon printArrayElements (arr, suurus) {
for (olgu i = 0; idocument.write (arr [i] + "");
}
document.write ("
");
}
olgu arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76];
olgu suurus1 = arr1.pikkus;
document.write ("Algmassiiv:" + "
");
printArrayElements (arr1, suurus1);
document.write ("Massiiv pärast duplikaatide eemaldamist:" + "
");
removeDuplicateElements (arr1, suurus1);
olgu arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8];
olgu suurus2 = arr2.pikkus;
document.write ("Algmassiiv:" + "
");
printArrayElements (arr2, suurus2);
document.write ("Massiiv pärast duplikaatide eemaldamist:" + "
");
removeDuplicateElements (arr2, suurus2);
olgu arr3 = [32, 35, 33, 32, 33, 38, 32, 39];
olgu suurus3 = arr3.pikkus;
document.write ("Algmassiiv:" + "
");
printArrayElements (arr3, suurus3);
document.write ("Massiiv pärast duplikaatide eemaldamist:" + "
");
removeDuplicateElements (arr3, suurus3);

Väljund:

Esialgne massiiv: 
23 35 23 56 67 35 35 54 76
Massiiv pärast duplikaatide eemaldamist:
23 35 56 67 54 76
Esialgne massiiv:
5 6 1 1 7 5 8 2 7 8
Massiiv pärast duplikaatide eemaldamist:
5 6 1 7 8 2
Esialgne massiiv:
32 35 33 32 33 38 32 39
Massiiv pärast duplikaatide eemaldamist:
32 35 33 38 39

Seotud: Kuidas loendada stringis antud tegelase esinemisi

Kuidas eemaldada dubleeritud elemente sorteeritud massiivist

Probleemipüstituses

Teile antakse sorteeritud täisarvude massiiv. Peate massiivist eemaldama duplikaatelemendid ja massiivi unikaalsete elementidega printima.

Näide 1: Olgu arr = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]

Massiiv pärast dubleerivate elementide eemaldamist: 1 2 4 6 8 9

Seega on väljundiks 1 2 4 6 8 9.

Näide 2: Olgu arr = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]

Massiiv pärast duplikaatelementide eemaldamist: 1 2 3 4 5

Seega on väljundiks 1 2 3 4 5.

Lähenemisviis dubleeritud elementide eemaldamiseks sorteeritud massiivist

Sorditud massiivilt saate duplikaatelemendid eemaldada, järgides alltoodud lähenemisviisi:

  1. Initsialiseerige indeksmuutujad i ja j 0-ga.
  2. Massiivi kordamine.
  3. Kui i-nda element ei ole võrdne (i + 1) -ga elemendiga, siis salvestage i-s väärtus arr [j] ja suurendage j väärtust.
  4. Suurendage i iteratsiooni väärtust.
  5. Salvestage arr viimase väärtus arr [j].
  6. Lõpuks tagastage massiivi uus suurus, st j. Ainulaadsed elemendid salvestatakse massiivi indeksist 0 kuni j-1.

Märge: Selle lahenduse ajaline keerukus on O (n).

C ++ programm dubleerivate elementide eemaldamiseks sorteeritud massiivist

Allpool on C ++ programm sorditud massiivi duplikaatide eemaldamiseks:

// C ++ programm sorditud massiivi duplikaatide eemaldamiseks
# kaasata
nimeruumi kasutamine std;
// Funktsioon dubleeritud elementide eemaldamiseks sorteeritud massiivist
int removeDuplicateElements (int arr [], int suurus)
{
int j = 0;
for (int i = 0; i {
// Kui i-s element ei ole võrdne (i + 1) -se elemendiga,
// siis salvestage i-s väärtus arr [j]
kui (arr [i]! = arr [i + 1])
{
arr [j] = arr [i];
j ++;
}
}
// arr-i [j] arr viimase väärtuse salvestamine
arr [j ++] = arr [suurus-1];
tagasi j;
}
void printArrayElements (int arr [], int suurus)
{
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 << "Algmassiiv:" << endl;
printArrayElements (arr1, suurus1);
cout << "Massiiv pärast duplikaatide eemaldamist:" << endl;
size1 = removeDuplicateElements (arr1, size1);
printArrayElements (arr1, suurus1);
int arr2 [] = {1, 1, 2, 2, 3, 3, 4, 4, 5, 5};
int size2 = sizeof (arr2) / sizeof (arr2 [0]);
cout << "Algmassiiv:" << endl;
printArrayElements (arr2, suurus2);
cout << "Massiiv pärast duplikaatide eemaldamist:" << endl;
size2 = removeDuplicateElements (arr2, size2);
printArrayElements (arr2, suurus2);
int arr3 [] = {10, 12, 12, 14, 16, 16, 18, 19, 19};
int size3 = sizeof (arr3) / sizeof (arr3 [0]);
cout << "Algmassiiv:" << endl;
printArrayElements (arr3, suurus3);
cout << "Massiiv pärast duplikaatide eemaldamist:" << endl;
size3 = removeDuplicateElements (arr3, size3);
printArrayElements (arr3, suurus3);
tagastama 0;
}

Väljund:

Esialgne massiiv: 
1 1 1 2 4 6 8 8 9 9
Massiiv pärast duplikaatide eemaldamist:
1 2 4 6 8 9
Esialgne massiiv:
1 1 2 2 3 3 4 4 5 5
Massiiv pärast duplikaatide eemaldamist:
1 2 3 4 5
Esialgne massiiv:
10 12 12 14 16 16 18 19 19
Massiiv pärast duplikaatide eemaldamist:
10 12 14 16 18 19

Pythoni programm dubleerivate elementide eemaldamiseks sorteeritud massiivist

Allpool on Python programm sorditud massiivi duplikaatide eemaldamiseks:

# Pythoni programm dubleeritud elementide eemaldamiseks sorteeritud massiivist
def removeDuplicateElements (arr, suurus):
j = 0
i jaoks vahemikus (suurus-1):
kui arr [i]! = arr [i + 1]:
arr [j] = arr [i]
j = j + 1
arr [j] = arr [suurus-1]
j = j + 1
tagasi j
def printListElements (arr, suurus):
i jaoks vahemikus (suurus):
print (arr [i], end = "")
print ()
arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]
suurus1 = len (arr1)
print ("Algmassiiv:")
printListElements (arr1, suurus1)
print ("Massiiv pärast duplikaatide eemaldamist:")
size1 = removeDuplicateElements (arr1, size1)
printListElements (arr1, suurus1)
arr2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
suurus2 = len (arr2)
print ("Algmassiiv:")
printListElements (arr2, size2)
print ("Massiiv pärast duplikaatide eemaldamist:")
size2 = removeDuplicateElements (arr2, size2)
printListElements (arr2, size2)
arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19]
suurus3 = len (arr3)
print ("Algmassiiv:")
printListElements (arr3, suurus3)
print ("Massiiv pärast duplikaatide eemaldamist:")
size3 = removeDuplicateElements (arr3, size3)
printListElements (arr3, suurus3)

Väljund:

Esialgne massiiv: 
1 1 1 2 4 6 8 8 9 9
Massiiv pärast duplikaatide eemaldamist:
1 2 4 6 8 9
Esialgne massiiv:
1 1 2 2 3 3 4 4 5 5
Massiiv pärast duplikaatide eemaldamist:
1 2 3 4 5
Esialgne massiiv:
10 12 12 14 16 16 18 19 19
Massiiv pärast duplikaatide eemaldamist:
10 12 14 16 18 19

Seotud: Sissejuhatus ühendamise sortimise algoritmi

JavaScripti programm dubleerivate elementide eemaldamiseks sorteeritud massiivist

Allpool on JavaScripti programm sorditud massiivi duplikaatide eemaldamiseks:

// JavaScripti programm sorditud massiivi duplikaatide eemaldamiseks
// Funktsioon dubleeritud elementide eemaldamiseks sorteeritud massiivist
funktsioon eemalda dubleerivad elemendid (massiiv, suurus)
{
olgu j = 0;
for (olgu i = 0; i {
// Kui i-s element ei ole võrdne (i + 1) -se elemendiga,
// siis salvestage i-s väärtus arr [j]
kui (arr [i]! = arr [i + 1])
{
arr [j] = arr [i];
j ++;
}
}
// arr-i [j] arr viimase väärtuse salvestamine
arr [j ++] = arr [suurus-1];
tagasi j;
}
funktsioon printArrayElements (arr, suurus) {
for (olgu i = 0; idocument.write (arr [i] + "");
}
document.write ("
");
}
var arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9];
var size1 = arr1.pikkus;
document.write ("Algmassiiv:" + "
");
printArrayElements (arr1, suurus1);
document.write ("Massiiv pärast duplikaatide eemaldamist:" + "
");
size1 = removeDuplicateElements (arr1, size1);
printArrayElements (arr1, suurus1);
var arr2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5];
var suurus2 = arr2.pikkus;
document.write ("Algmassiiv:" + "
");
printArrayElements (arr2, suurus2);
document.write ("Massiiv pärast duplikaatide eemaldamist:" + "
");
size2 = removeDuplicateElements (arr2, size2);
printArrayElements (arr2, suurus2);
var arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19];
var size3 = arr3.pikkus;
document.write ("Algmassiiv:" + "
");
printArrayElements (arr3, suurus3);
document.write ("Massiiv pärast duplikaatide eemaldamist:" + "
");
size3 = removeDuplicateElements (arr3, size3);
printArrayElements (arr3, suurus3);

Väljund:

Seotud: Kuidas leida stringi kõige sagedamini esinev tegelane

Esialgne massiiv: 
1 1 1 2 4 6 8 8 9 9
Massiiv pärast duplikaatide eemaldamist:
1 2 4 6 8 9
Esialgne massiiv:
1 1 2 2 3 3 4 4 5 5
Massiiv pärast duplikaatide eemaldamist:
1 2 3 4 5
Esialgne massiiv:
10 12 12 14 16 16 18 19 19
Massiiv pärast duplikaatide eemaldamist:
10 12 14 16 18 19

Harjutage stringi ja massiivi probleeme järgmiseks intervjuuks

Stringi- ja massiiviprobleemid on tehniliste intervjuude seas enim küsitud teemad.

Kui soovite olla võimalikult ettevalmistatud, peate harjutama mõnda sagedamini küsitavat probleemi, näiteks kuidas kontrollida, kas string on palindroom, kuidas kontrollida, kas string on anagramm, leida stringi kõige sagedamini esinev märk, kuidas massiivi ümber pöörata, massiividel põhinevaid algoritme sorteerida ja otsida, kuidas stringi ümber pöörata jne.

E-post
Stringi ümberpööramine C ++, Pythoni ja JavaScripti puhul

Siit saate teada, kuidas string tagasi tagasi pöörata kolmes erinevas keeles.

Loe edasi

Seotud teemad
  • Programmeerimine
  • JavaScripti
  • Python
  • Kodeerimise õpetused
Autori kohta
Yuvraj Chandra (40 artiklit on avaldatud)

Yuvraj on arvutiteaduse eriala üliõpilane Delhis, Indias. Ta on kirglik Full Stacki veebiarenduse vastu. Kui ta ei kirjuta, uurib ta erinevate tehnoloogiate sügavust.

Veel Yuvraj Chandrast

Telli meie uudiskiri

Liituge meie uudiskirjaga, kus leiate tehnilisi näpunäiteid, ülevaateid, tasuta e-raamatuid ja eksklusiivseid pakkumisi!

Tellimiseks klõpsake siin