O matrice este o colecție de elemente cu aceleași tipuri de date. Este o structură de date liniară și este stocată în locații de memorie adiacente. Puteți efectua multe operații de bază pe o matrice, cum ar fi inserarea, ștergerea, căutarea, actualizarea, traversarea etc.
În acest articol, veți afla cum să eliminați elementele duplicate din matricele sortate și nesortate.
Cum se elimină elementele duplicate dintr-un tablou nesortat
Declarație problemă
Vi se oferă o matrice nesortată de numere întregi. Trebuie să eliminați elementele duplicate din matrice și să imprimați matricea cu elemente unice.
Exemplul 1: Fie arr = [23, 35, 23, 56, 67, 35, 35, 54, 76]
Matrice după eliminarea elementelor duplicat: 23 35 56 67 54 76
Astfel, ieșirea este 23 35 56 67 54 76.
Exemplul 2: Fie arr = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]
Matrice după eliminarea elementelor duplicat: 5 6 1 7 8 2
Astfel, ieșirea este 5 6 1 7 8 2.
Abordare pentru eliminarea elementelor duplicate dintr-un tablou nesortat
Puteți elimina elementele duplicate dintr-o matrice nesortată urmând abordarea de mai jos:
- Inițializați o hartă hash care va stoca toate elementele unice ale matricei.
- Traversați matricea.
- Verificați dacă elementul este prezent în matrice.
- Dacă elementul este prezent în matrice, continuați să traversați.
- Dacă elementul nu este prezent în matrice, tipăriți elementul și stocați-l în harta hash.
Notă: Complexitatea în timp a acestei soluții este O (n).
Program C ++ pentru eliminarea elementelor duplicate dintr-un tablou nesortat
Mai jos este programul C ++ pentru a elimina elementele duplicate dintr-un tablou nesortat:
// Program C ++ pentru eliminarea elementelor duplicate dintr-un tablou nesortat
#include
folosind spațiul de nume std;
// Funcția de eliminare a elementelor duplicate dintr-un tablou nesortat
void removeDuplicateElements (int arr [], dimensiunea int)
{
harta_nordonată m;
pentru (int i = 0; eu{
// Imprimați elementul dacă nu este
// prezent pe harta hash
if (m.find (arr [i]) == m.end ())
{
cout << arr [i] << "";
}
// Introduceți elementul în harta hash
m [arr [i]] = adevărat;
}
cout << endl;
}
void printArrayElements (int arr [], dimensiune int)
{
pentru (int i = 0; eu{
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, size1);
cout << "Matrice după eliminarea duplicatelor:" << endl;
removeDuplicateElements (arr1, size1);
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 << "Matrice după eliminarea duplicatelor:" << 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, size3);
cout << "Matrice după eliminarea duplicatelor:" << endl;
removeDuplicateElements (arr3, size3);
retur 0;
}
Ieșire:
Matricea inițială:
23 35 23 56 67 35 35 54 76
Matrice după eliminarea duplicatelor:
23 35 56 67 54 76
Matricea inițială:
5 6 1 1 7 5 8 2 7 8
Matrice după eliminarea duplicatelor:
5 6 1 7 8 2
Matricea inițială:
32 35 33 32 33 38 32 39
Matrice după eliminarea duplicatelor:
32 35 33 38 39
Legate de: Cum se tipărește „Bună ziua, lume!” în cele mai populare limbaje de programare
Programul Python pentru eliminarea elementelor duplicate dintr-un tablou nesortat
Mai jos este programul Python pentru a elimina elementele duplicate dintr-un tablou nesortat:
# Programul Python pentru a elimina elementele duplicate dintr-o listă nesortată
def removeDuplicateElements (arr, dimensiune):
m = {}
pentru i în interval (dimensiune):
# Imprimați elementul dacă nu este
# prezent în dicționar
if arr [i] not in m:
print (arr [i], end = "")
# Introduceți elementul în dicționar
m [arr [i]] = 1
imprimare()
def printListElements (arr, dimensiune):
pentru i în interval (dimensiune):
print (arr [i], end = "")
imprimare()
arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76]
size1 = len (arr1)
print ("Lista inițială:")
printListElements (arr1, size1)
print ("Lista după eliminarea duplicatelor:")
removeDuplicateElements (arr1, size1)
arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]
size2 = len (arr2)
print ("Lista inițială:")
printListElements (arr2, size2)
print ("Lista după eliminarea duplicatelor:")
removeDuplicateElements (arr2, size2)
arr3 = [32, 35, 33, 32, 33, 38, 32, 39]
size3 = len (arr3)
print ("Lista inițială:")
printListElements (arr3, size3)
print ("Lista după eliminarea duplicatelor:")
removeDuplicateElements (arr3, size3)
Ieșire:
Matricea inițială:
23 35 23 56 67 35 35 54 76
Matrice după eliminarea duplicatelor:
23 35 56 67 54 76
Matricea inițială:
5 6 1 1 7 5 8 2 7 8
Matrice după eliminarea duplicatelor:
5 6 1 7 8 2
Matricea inițială:
32 35 33 32 33 38 32 39
Matrice după eliminarea duplicatelor:
32 35 33 38 39
Program JavaScript pentru a elimina elemente duplicate dintr-un tablou nesortat
Mai jos este programul JavaScript pentru a elimina elementele duplicate dintr-un tablou nesortat:
// Program JavaScript pentru eliminarea elementelor duplicate dintr-o matrice nesortată
// Funcția de eliminare a elementelor duplicate dintr-un tablou nesortat
funcție removeDuplicateElements (arr, dimensiune) {
let m = new Map ();
pentru (să i = 0; i // Imprimați elementul dacă nu este
// prezent pe harta hash
if (m.get (arr [i]) == nul) {
document.write (arr [i] + "");
}
// Introduceți elementul în harta hash
m.set (arr [i], adevărat);
}
document.write („
");
}
funcție printArrayElements (arr, dimensiune) {
pentru (să i = 0; eudocument.write (arr [i] + "");
}
document.write („
");
}
let arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76];
let size1 = arr1.length;
document.write ("Matrice inițială:" + "
");
printArrayElements (arr1, size1);
document.write ("Matrice după eliminarea duplicatelor:" + "
");
removeDuplicateElements (arr1, size1);
să fie arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8];
let size2 = arr2.length;
document.write ("Matrice inițială:" + "
");
printArrayElements (arr2, size2);
document.write ("Matrice după eliminarea duplicatelor:" + "
");
removeDuplicateElements (arr2, size2);
let arr3 = [32, 35, 33, 32, 33, 38, 32, 39];
let size3 = arr3.length;
document.write ("Matrice inițială:" + "
");
printArrayElements (arr3, size3);
document.write ("Matrice după eliminarea duplicatelor:" + "
");
removeDuplicateElements (arr3, size3);
Ieșire:
Matricea inițială:
23 35 23 56 67 35 35 54 76
Matrice după eliminarea duplicatelor:
23 35 56 67 54 76
Matricea inițială:
5 6 1 1 7 5 8 2 7 8
Matrice după eliminarea duplicatelor:
5 6 1 7 8 2
Matricea inițială:
32 35 33 32 33 38 32 39
Matrice după eliminarea duplicatelor:
32 35 33 38 39
Legate de: Cum se numără aparițiile unui caracter dat într-un șir
Cum se elimină elementele duplicate dintr-o matrice sortată
Declarație problemă
Vi se oferă o matrice sortată de numere întregi. Trebuie să eliminați elementele duplicate din matrice și să imprimați matricea cu elemente unice.
Exemplul 1: Fie arr = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]
Matrice după eliminarea elementelor duplicat: 1 2 4 6 8 9
Astfel, ieșirea este 1 2 4 6 8 9.
Exemplul 2: Fie arr = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
Matrice după eliminarea elementelor duplicat: 1 2 3 4 5
Astfel, ieșirea este 1 2 3 4 5.
Abordare pentru eliminarea elementelor duplicate dintr-o matrice sortată
Puteți elimina elemente duplicate dintr-o matrice sortată urmând abordarea de mai jos:
- Inițializați variabilele index i și j cu 0.
- Iterează matricea.
- Dacă elementul ith nu este egal cu elementul (i + 1), atunci stocați valoarea ith în arr [j] și creșteți valoarea lui j.
- Creșteți valoarea lui i în fiecare iterație.
- Stocați ultima valoare a arr în arr [j].
- În cele din urmă returnați noua dimensiune a matricei, adică j. Elementele unice vor fi stocate în matrice de la indexul 0 la j-1.
Notă: Complexitatea în timp a acestei soluții este O (n).
Program C ++ pentru eliminarea elementelor duplicate dintr-o matrice sortată
Mai jos este programul C ++ pentru a elimina elementele duplicate dintr-o matrice sortată:
// Program C ++ pentru eliminarea elementelor duplicate dintr-o matrice sortată
#include
folosind spațiul de nume std;
// Funcția de eliminare a elementelor duplicate dintr-o matrice sortată
int removeDuplicateElements (int arr [], dimensiunea int)
{
int j = 0;
pentru (int i = 0; i {
// Dacă elementul ith nu este egal cu (i + 1) al treilea element,
// apoi stocați valoarea ith în arr [j]
if (arr [i]! = arr [i + 1])
{
arr [j] = arr [i];
j ++;
}
}
// Stocarea ultimei valori a arr în arr [j]
arr [j ++] = arr [mărime-1];
retur j;
}
void printArrayElements (int arr [], dimensiune int)
{
pentru (int i = 0; eu{
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, size1);
cout << "Matrice după eliminarea duplicatelor:" << endl;
size1 = removeDuplicateElements (arr1, size1);
printArrayElements (arr1, size1);
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 << "Matrice după eliminarea duplicatelor:" << 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, size3);
cout << "Matrice după eliminarea duplicatelor:" << endl;
size3 = removeDuplicateElements (arr3, size3);
printArrayElements (arr3, size3);
retur 0;
}
Ieșire:
Matricea inițială:
1 1 1 2 4 6 8 8 9 9
Matrice după eliminarea duplicatelor:
1 2 4 6 8 9
Matricea inițială:
1 1 2 2 3 3 4 4 5 5
Matrice după eliminarea duplicatelor:
1 2 3 4 5
Matricea inițială:
10 12 12 14 16 16 18 19 19
Matrice după eliminarea duplicatelor:
10 12 14 16 18 19
Programul Python pentru eliminarea elementelor duplicate dintr-o matrice sortată
Mai jos este programul Python pentru a elimina elementele duplicate dintr-o matrice sortată:
# Programul Python pentru a elimina elementele duplicate dintr-o matrice sortată
def removeDuplicateElements (arr, dimensiune):
j = 0
pentru i în interval (dimensiunea-1):
dacă arr [i]! = arr [i + 1]:
arr [j] = arr [i]
j = j + 1
arr [j] = arr [mărime-1]
j = j + 1
întoarce j
def printListElements (arr, dimensiune):
pentru i în interval (dimensiune):
print (arr [i], end = "")
imprimare()
arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]
size1 = len (arr1)
print ("Matrice inițială:")
printListElements (arr1, size1)
print ("Matrice după eliminarea duplicatelor:")
size1 = removeDuplicateElements (arr1, size1)
printListElements (arr1, size1)
arr2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
size2 = len (arr2)
print ("Matrice inițială:")
printListElements (arr2, size2)
print ("Matrice după eliminarea duplicatelor:")
size2 = removeDuplicateElements (arr2, size2)
printListElements (arr2, size2)
arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19]
size3 = len (arr3)
print ("Matrice inițială:")
printListElements (arr3, size3)
print ("Matrice după eliminarea duplicatelor:")
size3 = removeDuplicateElements (arr3, size3)
printListElements (arr3, size3)
Ieșire:
Matricea inițială:
1 1 1 2 4 6 8 8 9 9
Matrice după eliminarea duplicatelor:
1 2 4 6 8 9
Matricea inițială:
1 1 2 2 3 3 4 4 5 5
Matrice după eliminarea duplicatelor:
1 2 3 4 5
Matricea inițială:
10 12 12 14 16 16 18 19 19
Matrice după eliminarea duplicatelor:
10 12 14 16 18 19
Legate de: O introducere în algoritmul de sortare Merge
Program JavaScript pentru a elimina elementele duplicate dintr-o matrice sortată
Mai jos este programul JavaScript pentru a elimina elementele duplicate dintr-o matrice sortată:
// Program JavaScript pentru eliminarea elementelor duplicate dintr-o matrice sortată
// Funcția de eliminare a elementelor duplicate dintr-o matrice sortată
funcție removeDuplicateElements (arr, dimensiune)
{
să fie j = 0;
pentru (să i = 0; i {
// Dacă elementul ith nu este egal cu (i + 1) al treilea element,
// apoi stocați valoarea ith în arr [j]
if (arr [i]! = arr [i + 1])
{
arr [j] = arr [i];
j ++;
}
}
// Stocarea ultimei valori a arr în arr [j]
arr [j ++] = arr [mărime-1];
retur j;
}
funcție printArrayElements (arr, dimensiune) {
pentru (să i = 0; eudocument.write (arr [i] + "");
}
document.write („
");
}
var arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9];
var size1 = arr1.length;
document.write ("Matrice inițială:" + "
");
printArrayElements (arr1, size1);
document.write ("Matrice după eliminarea duplicatelor:" + "
");
size1 = removeDuplicateElements (arr1, size1);
printArrayElements (arr1, size1);
var arr2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5];
var size2 = arr2.length;
document.write ("Matrice inițială:" + "
");
printArrayElements (arr2, size2);
document.write ("Matrice după eliminarea duplicatelor:" + "
");
size2 = removeDuplicateElements (arr2, size2);
printArrayElements (arr2, size2);
var arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19];
var size3 = arr3.length;
document.write ("Matrice inițială:" + "
");
printArrayElements (arr3, size3);
document.write ("Matrice după eliminarea duplicatelor:" + "
");
size3 = removeDuplicateElements (arr3, size3);
printArrayElements (arr3, size3);
Ieșire:
Legate de: Cum să găsiți cel mai frecvent personaj dintr-un șir
Matricea inițială:
1 1 1 2 4 6 8 8 9 9
Matrice după eliminarea duplicatelor:
1 2 4 6 8 9
Matricea inițială:
1 1 2 2 3 3 4 4 5 5
Matrice după eliminarea duplicatelor:
1 2 3 4 5
Matricea inițială:
10 12 12 14 16 16 18 19 19
Matrice după eliminarea duplicatelor:
10 12 14 16 18 19
Practicați problemele de șir și matrice pentru următorul dvs. interviu
Problemele de șiruri și matrice sunt printre cele mai solicitate subiecte în interviurile tehnice.
Dacă doriți să fiți cât mai pregătiți, trebuie să practicați unele probleme frecvente, cum ar fi cum să verificați dacă un șir este un palindrom, cum să verificați dacă un șir este o anagramă, găsiți cel mai frecvent caracter dintr-un șir, cum să inversați o matrice, sortarea și căutarea algoritmilor pe baza matricelor, cum să inversați un șir, etc.
Aflați cum să inversați un șir înapoi în față în trei limbi diferite.
Citiți în continuare
- Programare
- JavaScript
- Piton
- Tutoriale de codare
Yuvraj este student în științe informatice la Universitatea din Delhi, India. Este pasionat de dezvoltarea web Full Stack. Când nu scrie, explorează profunzimea diferitelor tehnologii.
Aboneaza-te la newsletter-ul nostru
Alăturați-vă newsletterului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!
Faceți clic aici pentru a vă abona