A tömb ugyanazon adattípusú elemek gyűjteménye. Lineáris adatszerkezet és összefüggő memóriahelyeken tárolódik. Egy tömbön számos alapvető műveletet hajthat végre, például beillesztést, törlést, keresést, frissítést, bejárást stb.

Ebben a cikkben megtudhatja, hogyan távolíthatja el az ismétlődő elemeket a rendezett és nem rendezett tömbökből.

Hogyan lehet eltávolítani az ismétlődő elemeket egy nem rendezett tömbből

Probléma nyilatkozat

Rendezetlen egész tömböt kap. El kell távolítania az ismétlődő elemeket a tömbből, és ki kell nyomtatnia a tömböt egyedi elemekkel.

1. példa: Legyen arr = [23, 35, 23, 56, 67, 35, 35, 54, 76]

Tömb az ismétlődő elemek eltávolítása után: 23 35 56 67 54 76

Így a kimenet 23 35 56 67 54 76.

2. példa: Legyen arr = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]

Tömb az ismétlődő elemek eltávolítása után: 5 6 1 7 8 2

Így a kimenet 5 6 1 7 8 2.

Megközelítés az ismétlődő elemek eltávolításáról egy nem rendezett tömbből

Az alábbi megközelítést követve eltávolíthatja az ismétlődő elemeket egy nem rendezett tömbből:

instagram viewer
  1. Inicializáljon egy hash térképet, amely tárolja a tömb összes egyedi elemét.
  2. Keresse meg a tömböt.
  3. Ellenőrizze, hogy az elem szerepel-e a tömbben.
  4. Ha az elem jelen van a tömbben, haladjon tovább.
  5. Ha az elem nincs a tömbben, nyomtassa ki az elemet, és tárolja a kivonat térképen.

jegyzet: A megoldás időbeli összetettsége O (n).

C ++ program az ismétlődő elemek eltávolításához egy nem rendezett tömbből

Az alábbiakban látható a C ++ program, amely eltávolítja az ismétlődő elemeket egy nem rendezett tömbből:

// C ++ program az ismétlődő elemek eltávolításához egy nem rendezett tömbből
#include
névtér használata std;
// Funkció az ismétlődő elemek eltávolításához egy nem rendezett tömbből
void removeDuplicateElements (int arr [], int méret)
{
rendezetlen_térkép m;
for (int i = 0; én{
// Nyomja meg az elemet, ha nem
// jelen van a hash térképen
if (m.find (arr [i]) == m.end ())
{
cout << arr [i] << "";
}
// Helyezze be az elemet a hash térképbe
m [arr [i]] = igaz;
}
cout << endl;
}
void printArrayElements (int arr [], int méret)
{
for (int i = 0; én{
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, méret1);
cout << "Tömb a másolatok eltávolítása után:" << endl;
removeDuplicateElements (arr1, méret1);
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, size2);
cout << "Tömb a másolatok eltávolítása után:" << endl;
removeDuplicateElements (arr2, size2);
int arr3 [] = {32, 35, 33, 32, 33, 38, 32, 39};
int size3 = sizeof (arr3) / sizeof (arr3 [0]);
cout << "Initial Array:" << endl;
printArrayElements (arr3, méret3);
cout << "Tömb a másolatok eltávolítása után:" << endl;
removeDuplicateElements (arr3, size3);
visszatér 0;
}

Kimenet:

Kezdeti tömb: 
23 35 23 56 67 35 35 54 76
Tömb a másolatok eltávolítása után:
23 35 56 67 54 76
Kezdeti tömb:
5 6 1 1 7 5 8 2 7 8
Tömb a másolatok eltávolítása után:
5 6 1 7 8 2
Kezdeti tömb:
32 35 33 32 33 38 32 39
Tömb a másolatok eltávolítása után:
32 35 33 38 39

Összefüggő: Hogyan kell kinyomtatni a "Helló, világ!" a legnépszerűbb programozási nyelveken

Python program az ismétlődő elemek eltávolításához egy nem rendezett tömbből

Az alábbiakban bemutatjuk a Python programot, hogy eltávolítsuk az ismétlődő elemeket egy nem rendezett tömbből:

# Python program az ismétlődő elemek eltávolításához egy nem rendezett listából
def removeDuplicateElements (arr, méret):
m = {}
i tartományban (méret):
# Ha nem, nyomtassa ki az elemet
# jelen van a szótárban
ha arr [i] nem m-ben:
nyomtatás (arr [i], end = "")
# Helyezze be az elemet a szótárba
m [arr [i]] = 1
nyomtatás()
def printListElements (arr, méret):
i tartományban (méret):
nyomtatás (arr [i], end = "")
nyomtatás()
arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76]
méret1 = len (arr1)
nyomtatás ("Kezdőlista:")
printListElements (arr1, size1)
print ("Lista a duplikátumok eltávolítása után:")
removeDuplicateElements (arr1, méret1)
arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]
size2 = len (arr2)
nyomtatás ("Kezdőlista:")
printListElements (arr2, size2)
print ("Lista a duplikátumok eltávolítása után:")
removeDuplicateElements (arr2, size2)
arr3 = [32, 35, 33, 32, 33, 38, 32, 39]
size3 = len (arr3)
nyomtatás ("Kezdőlista:")
printListElements (arr3, size3)
print ("Lista a duplikátumok eltávolítása után:")
removeDuplicateElements (arr3, size3)

Kimenet:

Kezdeti tömb: 
23 35 23 56 67 35 35 54 76
Tömb a másolatok eltávolítása után:
23 35 56 67 54 76
Kezdeti tömb:
5 6 1 1 7 5 8 2 7 8
Tömb a másolatok eltávolítása után:
5 6 1 7 8 2
Kezdeti tömb:
32 35 33 32 33 38 32 39
Tömb a másolatok eltávolítása után:
32 35 33 38 39

JavaScript program az ismétlődő elemek eltávolításához egy nem rendezett tömbből

Az alábbiakban látható a JavaScript program, amely eltávolítja az ismétlődő elemeket egy nem rendezett tömbből:

// JavaScript program az ismétlődő elemek eltávolításához egy nem rendezett tömbből
// Funkció az ismétlődő elemek eltávolításához egy nem rendezett tömbből
function removeDuplicateElements (arr, méret) {
legyen m = new Map ();
for (legyen i = 0; i // Nyomja meg az elemet, ha nem
// jelen van a hash térképen
if (m.get (arr [i]) == null) {
document.write (arr [i] + "");
}
// Helyezze be az elemet a hash térképbe
m.set (arr [i], igaz);
}
document.write ("
");
}
függvény printArrayElements (arr, méret) {
for (legyen i = 0; éndocument.write (arr [i] + "");
}
document.write ("
");
}
legyen arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76];
legyen méret1 = arr1.hossz;
document.write ("Kezdő tömb:" + "
");
printArrayElements (arr1, méret1);
document.write ("Tömb a másolatok eltávolítása után:" + "
");
removeDuplicateElements (arr1, méret1);
legyen arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8];
legyen méret2 = arr2.hossz;
document.write ("Kezdő tömb:" + "
");
printArrayElements (arr2, size2);
document.write ("Tömb a másolatok eltávolítása után:" + "
");
removeDuplicateElements (arr2, size2);
legyen arr3 = [32, 35, 33, 32, 33, 38, 32, 39];
legyen méret3 = arr3.hossz;
document.write ("Kezdő tömb:" + "
");
printArrayElements (arr3, méret3);
document.write ("Tömb a másolatok eltávolítása után:" + "
");
removeDuplicateElements (arr3, size3);

Kimenet:

Kezdeti tömb: 
23 35 23 56 67 35 35 54 76
Tömb a másolatok eltávolítása után:
23 35 56 67 54 76
Kezdeti tömb:
5 6 1 1 7 5 8 2 7 8
Tömb a másolatok eltávolítása után:
5 6 1 7 8 2
Kezdeti tömb:
32 35 33 32 33 38 32 39
Tömb a másolatok eltávolítása után:
32 35 33 38 39

Összefüggő: Hogyan számoljuk meg egy adott karakter előfordulását egy húrban

Hogyan lehet eltávolítani az ismétlődő elemeket egy rendezett tömbből

Probléma nyilatkozat

Rendezett egész tömböt kap. El kell távolítania az ismétlődő elemeket a tömbből, és ki kell nyomtatnia a tömböt egyedi elemekkel.

1. példa: Legyen arr = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]

Tömb az ismétlődő elemek eltávolítása után: 1 2 4 6 8 9

Így a kimenet 1 2 4 6 8 9.

2. példa: Legyen arr = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]

Tömb az ismétlődő elemek eltávolítása után: 1 2 3 4 5

Így a kimenet 1 2 3 4 5.

Megközelítés az ismétlődő elemek rendezett tömbből való eltávolításához

Az alábbi megközelítést követve eltávolíthatja a duplikált elemeket egy rendezett tömbből:

  1. Inicializálja az i és j indexváltozókat 0-val.
  2. Ismételd meg a tömböt.
  3. Ha az i-edik elem nem egyenlő az (i + 1) -edik elemmel, akkor az i-edik értéket tárolja arr [j] -be, és növelje j értékét.
  4. Növelje az i értékét minden egyes iterációban.
  5. Tárolja az arr utolsó értékét arr [j] -ba.
  6. Végül adja vissza a tömb új méretét, azaz j. Az egyedi elemeket a tömbben 0-tól j-1-ig tároljuk.

jegyzet: A megoldás időbeli összetettsége O (n).

C ++ program az ismétlődő elemek eltávolításához egy rendezett tömbből

Az alábbiakban látható a C ++ program, amely eltávolítja az ismétlődő elemeket egy rendezett tömbből:

// C ++ program az ismétlődő elemek eltávolításához egy rendezett tömbből
#include
névtér használata std;
// Funkció az ismétlődő elemek eltávolításához egy rendezett tömbből
int removeDuplicateElements (int arr [], int méret)
{
int j = 0;
for (int i = 0; i {
// Ha az i-es elem nem egyenlő az (i + 1)-edik elemgel,
// majd tárolja az i-edik értéket az arr [j] értékben
if (arr [i]! = arr [i + 1])
{
arr [j] = arr [i];
j ++;
}
}
// Az arr utolsó értékének arr [j] tárolása
arr [j ++] = arr [méret-1];
visszatér j;
}
void printArrayElements (int arr [], int méret)
{
for (int i = 0; én{
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, méret1);
cout << "Tömb a másolatok eltávolítása után:" << endl;
size1 = removeDuplicateElements (arr1, size1);
printArrayElements (arr1, méret1);
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, size2);
cout << "Tömb a másolatok eltávolítása után:" << 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 << "Initial Array:" << endl;
printArrayElements (arr3, méret3);
cout << "Tömb a másolatok eltávolítása után:" << endl;
size3 = removeDuplicateElements (arr3, size3);
printArrayElements (arr3, méret3);
visszatér 0;
}

Kimenet:

Kezdeti tömb: 
1 1 1 2 4 6 8 8 9 9
Tömb a másolatok eltávolítása után:
1 2 4 6 8 9
Kezdeti tömb:
1 1 2 2 3 3 4 4 5 5
Tömb a másolatok eltávolítása után:
1 2 3 4 5
Kezdeti tömb:
10 12 12 14 16 16 18 19 19
Tömb a másolatok eltávolítása után:
10 12 14 16 18 19

Python program az ismétlődő elemek eltávolításához egy rendezett tömbből

Az alábbiakban bemutatjuk a Python programot, hogy eltávolítsuk az ismétlődő elemeket egy rendezett tömbből:

# Python program az ismétlődő elemek eltávolításához egy rendezett tömbből
def removeDuplicateElements (arr, méret):
j = 0
i tartományban (1-es méret):
ha arr [i]! = arr [i + 1]:
arr [j] = arr [i]
j = j + 1
arr [j] = arr [méret-1]
j = j + 1
visszatér j
def printListElements (arr, méret):
i tartományban (méret):
nyomtatás (arr [i], end = "")
nyomtatás()
arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]
méret1 = len (arr1)
print ("Kezdő tömb:")
printListElements (arr1, size1)
print ("Tömb a másolatok eltávolítása után:")
size1 = removeDuplicateElements (arr1, size1)
printListElements (arr1, size1)
arr2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
size2 = len (arr2)
print ("Kezdő tömb:")
printListElements (arr2, size2)
print ("Tömb a másolatok eltávolítása után:")
size2 = removeDuplicateElements (arr2, size2)
printListElements (arr2, size2)
arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19]
size3 = len (arr3)
print ("Kezdő tömb:")
printListElements (arr3, size3)
print ("Tömb a másolatok eltávolítása után:")
size3 = removeDuplicateElements (arr3, size3)
printListElements (arr3, size3)

Kimenet:

Kezdeti tömb: 
1 1 1 2 4 6 8 8 9 9
Tömb a másolatok eltávolítása után:
1 2 4 6 8 9
Kezdeti tömb:
1 1 2 2 3 3 4 4 5 5
Tömb a másolatok eltávolítása után:
1 2 3 4 5
Kezdeti tömb:
10 12 12 14 16 16 18 19 19
Tömb a másolatok eltávolítása után:
10 12 14 16 18 19

Összefüggő: Bevezetés a Merge Sort algoritmusba

JavaScript program az ismétlődő elemek eltávolításához rendezett tömbből

Az alábbiakban látható a JavaScript program, amely eltávolítja az ismétlődő elemeket egy rendezett tömbből:

// JavaScript program az ismétlődő elemek eltávolításához egy rendezett tömbből
// Funkció az ismétlődő elemek eltávolításához egy rendezett tömbből
function removeDuplicateElements (arr, méret)
{
legyen j = 0;
for (legyen i = 0; i {
// Ha az i-es elem nem egyenlő az (i + 1)-edik elemgel,
// majd tárolja az i-edik értéket az arr [j] értékben
if (arr [i]! = arr [i + 1])
{
arr [j] = arr [i];
j ++;
}
}
// Az arr utolsó értékének arr [j] tárolása
arr [j ++] = arr [méret-1];
visszatér j;
}
függvény printArrayElements (arr, méret) {
for (legyen i = 0; éndocument.write (arr [i] + "");
}
document.write ("
");
}
var arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9];
var size1 = arr1.hossz;
document.write ("Kezdő tömb:" + "
");
printArrayElements (arr1, méret1);
document.write ("Tömb a másolatok eltávolítása után:" + "
");
size1 = removeDuplicateElements (arr1, size1);
printArrayElements (arr1, méret1);
var arr2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5];
var size2 = arr2.hossz;
document.write ("Kezdő tömb:" + "
");
printArrayElements (arr2, size2);
document.write ("Tömb a másolatok eltávolítása után:" + "
");
size2 = removeDuplicateElements (arr2, size2);
printArrayElements (arr2, size2);
var arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19];
var size3 = arr3.hossz;
document.write ("Kezdő tömb:" + "
");
printArrayElements (arr3, méret3);
document.write ("Tömb a másolatok eltávolítása után:" + "
");
size3 = removeDuplicateElements (arr3, size3);
printArrayElements (arr3, méret3);

Kimenet:

Összefüggő: Hogyan lehet megtalálni a leggyakrabban előforduló karaktert egy húrban

Kezdeti tömb: 
1 1 1 2 4 6 8 8 9 9
Tömb a másolatok eltávolítása után:
1 2 4 6 8 9
Kezdeti tömb:
1 1 2 2 3 3 4 4 5 5
Tömb a másolatok eltávolítása után:
1 2 3 4 5
Kezdeti tömb:
10 12 12 14 16 16 18 19 19
Tömb a másolatok eltávolítása után:
10 12 14 16 18 19

Gyakorold a karakterlánc- és tömbproblémákat a következő interjúhoz

A karakterlánc- és tömbproblémák a technikai interjúk egyik leggyakrabban feltett témája.

Ha a lehető legfelkészültebbnek akar lenni, akkor gyakorolnia kell néhány gyakran feltett problémát, például azt, hogy ellenőrizze, hogy egy karakterlánc-e egy palindróma, hogyan kell ellenőrizni, hogy egy karakterlánc egy anagramma, keresse meg a karakterlánc leggyakrabban előforduló karakterét, a tömb megfordítását, a tömbök alapján történő rendezést és keresést, a karakterlánc megfordítását, stb.

Email
Hogyan lehet megfordítani egy karakterláncot a C ++, a Python és a JavaScript programokban

Megtanulják, hogyan lehet egy karakterláncot három különböző nyelven visszafordítani.

Olvassa el a következőt

Kapcsolódó témák
  • Programozás
  • JavaScript
  • Piton
  • Kódolási oktatóanyagok
A szerzőről
Yuvraj Chandra (40 cikk megjelent)

Yuvraj informatikus egyetemi hallgató az indiai Delhi Egyetemen. Szenvedélyes a Full Stack webfejlesztés iránt. Amikor nem ír, a különböző technológiák mélységét kutatja.

Több Yuvraj Chandra-tól

Iratkozzon fel hírlevelünkre

Csatlakozzon hírlevelünkhöz, amely műszaki tippeket, véleményeket, ingyenes e-könyveket és exkluzív ajánlatokat tartalmaz!

Kattintson ide a feliratkozáshoz