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:
- Inicializáljon egy hash térképet, amely tárolja a tömb összes egyedi elemét.
- Keresse meg a tömböt.
- Ellenőrizze, hogy az elem szerepel-e a tömbben.
- Ha az elem jelen van a tömbben, haladjon tovább.
- 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:
- Inicializálja az i és j indexváltozókat 0-val.
- Ismételd meg a tömböt.
- 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.
- Növelje az i értékét minden egyes iterációban.
- Tárolja az arr utolsó értékét arr [j] -ba.
- 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.
Megtanulják, hogyan lehet egy karakterláncot három különböző nyelven visszafordítani.
Olvassa el a következőt
- Programozás
- JavaScript
- Piton
- Kódolási oktatóanyagok
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.
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