Masyvas yra elementų, turinčių tuos pačius duomenų tipus, rinkinys. Tai linijinė duomenų struktūra ir saugoma gretimose atminties vietose. Galite atlikti daugybę pagrindinių masyvo operacijų, tokių kaip įterpimas, ištrynimas, paieška, atnaujinimas, perėjimas ir kt.

Šiame straipsnyje sužinosite, kaip pašalinti pasikartojančius elementus iš išrūšiuotų ir nerūšiuotų masyvų.

Kaip pašalinti pasikartojančius elementus iš nesurūšiuoto masyvo

Problemos pareiškimas

Jums suteikiama nerūšiuota sveikųjų skaičių masyvas. Turite pašalinti pasikartojančius elementus iš masyvo ir išspausdinti masyvą su unikaliais elementais.

1 pavyzdys: Tegul arr = [23, 35, 23, 56, 67, 35, 35, 54, 76]

Masyvas pašalinus pasikartojančius elementus: 23 35 56 67 54 76

Taigi išvestis yra 23 35 56 67 54 76.

2 pavyzdys: Tegul arr = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]

Masyvas pašalinus pasikartojančius elementus: 5 6 1 7 8 2

Taigi išvestis yra 5 6 1 7 8 2.

Požiūris, kaip pašalinti pasikartojančius elementus iš nesurūšiuoto masyvo

instagram viewer

Galite pašalinti pasikartojančius elementus iš nerūšiuoto masyvo, atlikdami toliau nurodytą metodą.

  1. Inicializuokite maišos žemėlapį, kuriame bus išsaugoti visi unikalūs masyvo elementai.
  2. Peržengti masyvą.
  3. Patikrinkite, ar elementas yra masyve.
  4. Jei elementas yra masyve, toliau važiuokite.
  5. Jei elemento masyvo nėra, atspausdinkite elementą ir išsaugokite jį maišos žemėlapyje.

Pastaba: Šio sprendimo laiko sudėtingumas yra O (n).

„C ++“ programa, skirta pašalinti pasikartojančius elementus iš nesurūšiuoto masyvo

Žemiau pateikiama programa C ++, skirta pašalinti pasikartojančius elementus iš nerūšiuoto masyvo:

// C ++ programa pasikartojantiems elementams pašalinti iš nerūšiuoto masyvo
# įtraukti
naudojant vardų sritį std;
// Funkcija pašalinti pasikartojančius elementus iš nerūšiuoto masyvo
void removeDuplicateElements (int arr [], int dydis)
{
neužsakytas_žemėlapis m;
už (int i = 0; i{
// Atspausdinkite elementą, jei jo nėra
// pateikti maišos žemėlapyje
jei (m.find (arr [i]) == m.end ())
{
cout << arr [i] << "";
}
// Įterpkite elementą į maišos žemėlapį
m [arr [i]] = teisinga;
}
cout << endl;
}
void printArrayElements (int arr [], int dydis)
{
už (int i = 0; i{
cout << arr [i] << "";
}
cout << endl;
}
int main ()
{
int arr1 [] = {23, 35, 23, 56, 67, 35, 35, 54, 76};
int dydis1 = sizeof (arr1) / sizeof (arr1 [0]);
cout << "Pradinis masyvas:" << endl;
printArrayElements (arr1, dydis1);
cout << "Masyvas pašalinus dublikatus:" << endl;
removeDuplicateElements (arr1, dydis1);
int arr2 [] = {5, 6, 1, 1, 7, 5, 8, 2, 7, 8};
int dydis2 = sizeof (arr2) / sizeof (arr2 [0]);
cout << "Pradinis masyvas:" << endl;
printArrayElements (arr2, dydis2);
cout << "Masyvas pašalinus dublikatus:" << endl;
removeDuplicateElements (arr2, dydis2);
int arr3 [] = {32, 35, 33, 32, 33, 38, 32, 39};
int dydis3 = sizeof (arr3) / sizeof (arr3 [0]);
cout << "Pradinis masyvas:" << endl;
printArrayElements (arr3, dydis3);
cout << "Masyvas pašalinus dublikatus:" << endl;
removeDuplicateElements (arr3, dydis3);
grąžinti 0;
}

Išvestis:

Pradinis masyvas: 
23 35 23 56 67 35 35 54 76
Masyvas pašalinus dublikatus:
23 35 56 67 54 76
Pradinis masyvas:
5 6 1 1 7 5 8 2 7 8
Masyvas pašalinus dublikatus:
5 6 1 7 8 2
Pradinis masyvas:
32 35 33 32 33 38 32 39
Masyvas pašalinus dublikatus:
32 35 33 38 39

Susijęs: Kaip atsispausdinti "Sveikas, pasauli!" populiariausiomis programavimo kalbomis

„Python“ programa pasikartojančių elementų pašalinimui iš nesurūšiuoto masyvo

Žemiau yra „Python“ programa, skirta pašalinti pasikartojančius elementus iš nerūšiuoto masyvo:

# Python programa pasikartojantiems elementams pašalinti iš nerūšiuoto sąrašo
def removeDuplicateElements (arr, dydis):
m = {}
i diapazone (dydis):
# Atspausdinkite elementą, jei jo nėra
# yra žodyne
jei arr [i] ne m:
spausdinti (arr [i], pabaiga = "")
# Įterpkite elementą į žodyną
m [arr [i]] = 1
spausdinti ()
def printListElements (arr, dydis):
i diapazone (dydis):
spausdinti (arr [i], pabaiga = "")
spausdinti ()
arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76]
dydis1 = len (arr1)
spausdinti ("Pradinis sąrašas:")
„printListElements“ („arr1“, „size1“)
spausdinti ("Sąrašas pašalinus dublikatus:")
removeDuplicateElements (arr1, dydis1)
arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]
dydis2 = len (arr2)
spausdinti ("Pradinis sąrašas:")
printListElements (arr2, size2)
spausdinti ("Sąrašas pašalinus dublikatus:")
removeDuplicateElements (arr2, dydis2)
arr3 = [32, 35, 33, 32, 33, 38, 32, 39]
dydis3 = len (arr3)
spausdinti ("Pradinis sąrašas:")
„printListElements“ („arr3“, „size3“)
spausdinti ("Sąrašas pašalinus dublikatus:")
removeDuplicateElements (arr3, dydis3)

Išvestis:

Pradinis masyvas: 
23 35 23 56 67 35 35 54 76
Masyvas pašalinus dublikatus:
23 35 56 67 54 76
Pradinis masyvas:
5 6 1 1 7 5 8 2 7 8
Masyvas pašalinus dublikatus:
5 6 1 7 8 2
Pradinis masyvas:
32 35 33 32 33 38 32 39
Masyvas pašalinus dublikatus:
32 35 33 38 39

„JavaScript“ programa, skirta pašalinti pasikartojančius elementus iš nesurūšiuoto masyvo

Žemiau yra „JavaScript“ programa, skirta pašalinti pasikartojančius elementus iš nerūšiuoto masyvo:

// „JavaScript“ programa pasikartojantiems elementams pašalinti iš nerūšiuoto masyvo
// Funkcija pašalinti pasikartojančius elementus iš nerūšiuoto masyvo
funkcija removeDuplicateElements (arr, dydis) {
tegul m = naujas žemėlapis ();
už (tegul i = 0; i // Atspausdinkite elementą, jei jo nėra
// pateikti maišos žemėlapyje
jei (m.get (arr [i]) == null) {
document.write (arr [i] + "");
}
// Įterpkite elementą į maišos žemėlapį
m.set (arr [i], tiesa);
}
document.write ("
");
}
funkcija printArrayElements (arr, dydis) {
už (tegul i = 0; idocument.write (arr [i] + "");
}
document.write ("
");
}
tegul arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76];
tegul dydis1 = arr1.length;
document.write ("Pradinis masyvas:" + "
");
printArrayElements (arr1, dydis1);
document.write ("Masyvas pašalinus dublikatus:" + "
");
removeDuplicateElements (arr1, dydis1);
tegul arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8];
tegul dydis2 = arr2.length;
document.write ("Pradinis masyvas:" + "
");
printArrayElements (arr2, dydis2);
document.write ("Masyvas pašalinus dublikatus:" + "
");
removeDuplicateElements (arr2, dydis2);
tegul arr3 = [32, 35, 33, 32, 33, 38, 32, 39];
tegul dydis3 = arr3.length;
document.write ("Pradinis masyvas:" + "
");
printArrayElements (arr3, dydis3);
document.write ("Masyvas pašalinus dublikatus:" + "
");
removeDuplicateElements (arr3, dydis3);

Išvestis:

Pradinis masyvas: 
23 35 23 56 67 35 35 54 76
Masyvas pašalinus dublikatus:
23 35 56 67 54 76
Pradinis masyvas:
5 6 1 1 7 5 8 2 7 8
Masyvas pašalinus dublikatus:
5 6 1 7 8 2
Pradinis masyvas:
32 35 33 32 33 38 32 39
Masyvas pašalinus dublikatus:
32 35 33 38 39

Susijęs: Kaip suskaičiuoti duoto simbolio atsiradimą eilutėje

Kaip pašalinti pasikartojančius elementus iš surūšiuoto masyvo

Problemos pareiškimas

Jums suteikiamas rūšiuojamas sveikųjų skaičių masyvas. Turite pašalinti pasikartojančius elementus iš masyvo ir išspausdinti masyvą su unikaliais elementais.

1 pavyzdys: Tegul arr = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]

Masyvas pašalinus pasikartojančius elementus: 1 2 4 6 8 9

Taigi išvestis yra 1 2 4 6 8 9.

2 pavyzdys: Tegul arr = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]

Masyvas pašalinus pasikartojančius elementus: 1 2 3 4 5

Taigi išvestis yra 1 2 3 4 5.

Požiūris, kaip pašalinti pasikartojančius elementus iš surūšiuoto masyvo

Galite pašalinti pasikartojančius elementus iš rūšiuojamo masyvo, atlikdami toliau nurodytą metodą:

  1. Inicializuokite indekso kintamuosius i ir j naudodami 0.
  2. Kartokite masyvą.
  3. Jei i-asis elementas nėra lygus (i + 1)-ajam elementui, tada i-ą vertę įrašykite į arr [j] ir padidinkite j vertę.
  4. Kiekvienoje iteracijoje padidinkite i vertę.
  5. Saugokite paskutinę arr reikšmę arr [j].
  6. Galiausiai grąžinkite naują masyvo dydį, t. Y. Unikalūs elementai bus saugomi masyve nuo indekso 0 iki j-1.

Pastaba: Šio sprendimo laiko sudėtingumas yra O (n).

„C ++“ programa, skirta pašalinti pasikartojančius elementus iš surūšiuoto masyvo

Žemiau yra C ++ programa, skirta pašalinti pasikartojančius elementus iš surūšiuoto masyvo:

// C ++ programa, skirta pašalinti pasikartojančius elementus iš surūšiuoto masyvo
# įtraukti
naudojant vardų sritį std;
// Funkcija pašalinti pasikartojančius elementus iš surūšiuoto masyvo
int removeDuplicateElements (int arr [], int dydis)
{
int j = 0;
už (int i = 0; i {
// Jei i-asis elementas nėra lygus (i + 1)-ajam elementui,
// tada išsaugokite ith reikšmę arr [j]
jei (arr [i]! = arr [i + 1])
{
arr [j] = arr [i];
j ++;
}
}
// Paskutinės arr reikšmės saugojimas arr [j]
arr [j ++] = arr [dydis-1];
grįžti j;
}
void printArrayElements (int arr [], int dydis)
{
už (int i = 0; i{
cout << arr [i] << "";
}
cout << endl;
}
int main ()
{
int arr1 [] = {1, 1, 1, 2, 4, 6, 8, 8, 9, 9};
int dydis1 = sizeof (arr1) / sizeof (arr1 [0]);
cout << "Pradinis masyvas:" << endl;
printArrayElements (arr1, dydis1);
cout << "Masyvas pašalinus dublikatus:" << endl;
size1 = removeDuplicateElements (arr1, size1);
printArrayElements (arr1, dydis1);
int arr2 [] = {1, 1, 2, 2, 3, 3, 4, 4, 5, 5};
int dydis2 = sizeof (arr2) / sizeof (arr2 [0]);
cout << "Pradinis masyvas:" << endl;
printArrayElements (arr2, dydis2);
cout << "Masyvas pašalinus dublikatus:" << endl;
size2 = removeDuplicateElements (arr2, size2);
printArrayElements (arr2, dydis2);
int arr3 [] = {10, 12, 12, 14, 16, 16, 18, 19, 19};
int dydis3 = sizeof (arr3) / sizeof (arr3 [0]);
cout << "Pradinis masyvas:" << endl;
printArrayElements (arr3, dydis3);
cout << "Masyvas pašalinus dublikatus:" << endl;
size3 = removeDuplicateElements (arr3, size3);
printArrayElements (arr3, dydis3);
grąžinti 0;
}

Išvestis:

Pradinis masyvas: 
1 1 1 2 4 6 8 8 9 9
Masyvas pašalinus dublikatus:
1 2 4 6 8 9
Pradinis masyvas:
1 1 2 2 3 3 4 4 5 5
Masyvas pašalinus dublikatus:
1 2 3 4 5
Pradinis masyvas:
10 12 12 14 16 16 18 19 19
Masyvas pašalinus dublikatus:
10 12 14 16 18 19

„Python“ programa, skirta pašalinti pasikartojančius elementus iš rūšiuojamo masyvo

Žemiau yra „Python“ programa, skirta pašalinti pasikartojančius elementus iš surūšiuoto masyvo:

# Python programa, skirta pašalinti pasikartojančius elementus iš surūšiuoto masyvo
def removeDuplicateElements (arr, dydis):
j = 0
i diapazone (dydis-1):
jei arr [i]! = arr [i + 1]:
arr [j] = arr [i]
j = j + 1
arr [j] = arr [dydis-1]
j = j + 1
grįžti j
def printListElements (arr, dydis):
i diapazone (dydis):
spausdinti (arr [i], pabaiga = "")
spausdinti ()
arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]
dydis1 = len (arr1)
spausdinti ("Pradinis masyvas:")
„printListElements“ („arr1“, „size1“)
spausdinti ("Masyvas pašalinus dublikatus:")
size1 = removeDuplicateElements (arr1, size1)
„printListElements“ („arr1“, „size1“)
arr2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
dydis2 = len (arr2)
spausdinti ("Pradinis masyvas:")
printListElements (arr2, size2)
spausdinti ("Masyvas pašalinus dublikatus:")
size2 = removeDuplicateElements (arr2, size2)
printListElements (arr2, size2)
arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19]
dydis3 = len (arr3)
spausdinti ("Pradinis masyvas:")
„printListElements“ („arr3“, „size3“)
spausdinti ("Masyvas pašalinus dublikatus:")
size3 = removeDuplicateElements (arr3, size3)
„printListElements“ („arr3“, „size3“)

Išvestis:

Pradinis masyvas: 
1 1 1 2 4 6 8 8 9 9
Masyvas pašalinus dublikatus:
1 2 4 6 8 9
Pradinis masyvas:
1 1 2 2 3 3 4 4 5 5
Masyvas pašalinus dublikatus:
1 2 3 4 5
Pradinis masyvas:
10 12 12 14 16 16 18 19 19
Masyvas pašalinus dublikatus:
10 12 14 16 18 19

Susijęs: Sujungimo rūšiavimo algoritmo įvadas

„JavaScript“ programa, skirta pašalinti pasikartojančius elementus iš surūšiuoto masyvo

Žemiau yra „JavaScript“ programa, skirta pašalinti pasikartojančius elementus iš surūšiuoto masyvo:

// „JavaScript“ programa, kad būtų pašalinti pasikartojantys elementai iš surūšiuoto masyvo
// Funkcija pašalinti pasikartojančius elementus iš surūšiuoto masyvo
funkcija removeDuplicateElements (arr, dydis)
{
tegul j = 0;
už (tegul i = 0; i {
// Jei i-asis elementas nėra lygus (i + 1)-ajam elementui,
// tada išsaugokite ith reikšmę arr [j]
jei (arr [i]! = arr [i + 1])
{
arr [j] = arr [i];
j ++;
}
}
// Paskutinės arr reikšmės saugojimas arr [j]
arr [j ++] = arr [dydis-1];
grįžti j;
}
funkcija printArrayElements (arr, dydis) {
už (tegul i = 0; idocument.write (arr [i] + "");
}
document.write ("
");
}
var arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9];
var dydis1 = arr1.length;
document.write ("Pradinis masyvas:" + "
");
printArrayElements (arr1, dydis1);
document.write ("Masyvas pašalinus dublikatus:" + "
");
size1 = removeDuplicateElements (arr1, size1);
printArrayElements (arr1, dydis1);
var arr2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5];
var dydis2 = arr2.length;
document.write ("Pradinis masyvas:" + "
");
printArrayElements (arr2, dydis2);
document.write ("Masyvas pašalinus dublikatus:" + "
");
size2 = removeDuplicateElements (arr2, size2);
printArrayElements (arr2, dydis2);
var arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19];
var dydis3 = arr3.length;
document.write ("Pradinis masyvas:" + "
");
printArrayElements (arr3, dydis3);
document.write ("Masyvas pašalinus dublikatus:" + "
");
size3 = removeDuplicateElements (arr3, size3);
printArrayElements (arr3, dydis3);

Išvestis:

Susijęs: Kaip rasti dažniausiai pasitaikančią eilutės veikėją

Pradinis masyvas: 
1 1 1 2 4 6 8 8 9 9
Masyvas pašalinus dublikatus:
1 2 4 6 8 9
Pradinis masyvas:
1 1 2 2 3 3 4 4 5 5
Masyvas pašalinus dublikatus:
1 2 3 4 5
Pradinis masyvas:
10 12 12 14 16 16 18 19 19
Masyvas pašalinus dublikatus:
10 12 14 16 18 19

Praktikos eilutės ir masyvo problemos kitam interviu

Styginių ir masyvų problemos yra viena iš dažniausiai užduodamų temų techniniuose interviu.

Jei norite būti kuo pasirengęs, turite išbandyti keletą dažniausiai užduodamų problemų, pavyzdžiui, kaip patikrinti, ar eilutė yra palindromas, kaip patikrinti, ar eilutė yra anagramą, raskite dažniausiai pasitaikančią simbolį eilutėje, kaip pakeisti masyvą, rūšiuojant ir ieškant algoritmų pagal masyvus, kaip pakeisti eilutę, ir kt.

El
Kaip pakeisti eilutę C ++, Python ir JavaScript

Sužinokite, kaip pakeisti eilutę atgal į priekį trimis skirtingomis kalbomis.

Skaitykite toliau

Susijusios temos
  • Programavimas
  • „JavaScript“
  • „Python“
  • Kodavimo vadovėliai
Apie autorių
Yuvraj Chandra (Paskelbta 40 straipsnių)

Yuvraj yra informatikos bakalauro studentas Delio universitete, Indijoje. Jis aistringai domisi „Full Stack“ interneto plėtra. Kai nerašo, jis tyrinėja įvairių technologijų gylį.

Daugiau iš „Yuvraj Chandra“

Užsiprenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kuriame rasite techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!

Norėdami užsiprenumeruoti, spustelėkite čia