Una matriz es una colección de elementos con los mismos tipos de datos. Es una estructura de datos lineal y se almacena en ubicaciones de memoria contiguas. Puede realizar muchas operaciones básicas en una matriz, como inserción, eliminación, búsqueda, actualización, recorrido, etc.
En este artículo, aprenderá a eliminar elementos duplicados de matrices ordenadas y no ordenadas.
Cómo eliminar elementos duplicados de una matriz sin clasificar
Planteamiento del problema
Se le da una matriz de números enteros sin clasificar. Debe eliminar los elementos duplicados de la matriz e imprimir la matriz con elementos únicos.
Ejemplo 1: Sea arr = [23, 35, 23, 56, 67, 35, 35, 54, 76]
Matriz después de eliminar elementos duplicados: 23 35 56 67 54 76
Por lo tanto, la salida es 23 35 56 67 54 76.
Ejemplo 2: Sea arr = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]
Matriz después de eliminar elementos duplicados: 5 6 1 7 8 2
Por lo tanto, la salida es 5 6 1 7 8 2.
Enfoque para eliminar elementos duplicados de una matriz sin clasificar
Puede eliminar elementos duplicados de una matriz sin clasificar siguiendo el enfoque a continuación:
- Inicialice un mapa hash que almacenará todos los elementos únicos de la matriz.
- Atraviesa la matriz.
- Compruebe si el elemento está presente en la matriz.
- Si el elemento está presente en la matriz, continúe atravesando.
- Si el elemento no está presente en la matriz, imprima el elemento y guárdelo en el mapa hash.
Nota: La complejidad temporal de esta solución es O (n).
Programa C ++ para eliminar elementos duplicados de una matriz sin clasificar
A continuación se muestra el programa C ++ para eliminar elementos duplicados de una matriz sin clasificar:
// Programa C ++ para eliminar elementos duplicados de una matriz sin clasificar
#incluir
usando el espacio de nombres std;
// Función para eliminar elementos duplicados de una matriz sin clasificar
void removeDuplicateElements (int arr [], int size)
{
unordered_map metro;
para (int i = 0; I{
// Imprime el elemento si no lo es
// presente en el mapa hash
if (m.find (arr [i]) == m.end ())
{
cout << arr [i] << "";
}
// Inserta el elemento en el mapa hash
m [arr [i]] = verdadero;
}
cout << endl;
}
printArrayElements vacío (int arr [], int tamaño)
{
para (int i = 0; I{
cout << arr [i] << "";
}
cout << endl;
}
int main ()
{
int arr1 [] = {23, 35, 23, 56, 67, 35, 35, 54, 76};
int tamaño1 = tamaño de (arr1) / tamaño de (arr1 [0]);
cout << "Matriz inicial:" << endl;
printArrayElements (arr1, tamaño1);
cout << "Matriz después de eliminar duplicados:" << endl;
removeDuplicateElements (arr1, tamaño1);
int arr2 [] = {5, 6, 1, 1, 7, 5, 8, 2, 7, 8};
int tamaño2 = tamaño de (arr2) / tamaño de (arr2 [0]);
cout << "Matriz inicial:" << endl;
printArrayElements (arr2, tamaño2);
cout << "Matriz después de eliminar duplicados:" << endl;
removeDuplicateElements (arr2, tamaño2);
int arr3 [] = {32, 35, 33, 32, 33, 38, 32, 39};
int tamaño3 = tamaño de (arr3) / tamaño de (arr3 [0]);
cout << "Matriz inicial:" << endl;
printArrayElements (arr3, tamaño3);
cout << "Matriz después de eliminar duplicados:" << endl;
removeDuplicateElements (arr3, tamaño3);
return 0;
}
Producción:
Matriz inicial:
23 35 23 56 67 35 35 54 76
Matriz después de eliminar duplicados:
23 35 56 67 54 76
Matriz inicial:
5 6 1 1 7 5 8 2 7 8
Matriz después de eliminar duplicados:
5 6 1 7 8 2
Matriz inicial:
32 35 33 32 33 38 32 39
Matriz después de eliminar duplicados:
32 35 33 38 39
Relacionada: Cómo imprimir "¡Hola, mundo!" en los lenguajes de programación más populares
Programa de Python para eliminar elementos duplicados de una matriz sin clasificar
A continuación se muestra el programa Python para eliminar elementos duplicados de una matriz sin clasificar:
# Programa de Python para eliminar elementos duplicados de una lista sin clasificar
def removeDuplicateElements (arr, tamaño):
m = {}
para i en rango (tamaño):
# Imprime el elemento si no lo es
# presente en el diccionario
si arr [i] no está en m:
print (arr [i], end = "")
# Inserta el elemento en el diccionario
m [arr [i]] = 1
imprimir()
def printListElements (arr, tamaño):
para i en rango (tamaño):
print (arr [i], end = "")
imprimir()
arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76]
tamaño1 = len (arr1)
imprimir ("Lista inicial:")
printListElements (arr1, tamaño1)
print ("Lista después de eliminar duplicados:")
removeDuplicateElements (arr1, tamaño1)
arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]
tamaño2 = len (arr2)
imprimir ("Lista inicial:")
printListElements (arr2, tamaño2)
print ("Lista después de eliminar duplicados:")
removeDuplicateElements (arr2, tamaño2)
arr3 = [32, 35, 33, 32, 33, 38, 32, 39]
tamaño3 = len (arr3)
imprimir ("Lista inicial:")
printListElements (arr3, tamaño3)
print ("Lista después de eliminar duplicados:")
removeDuplicateElements (arr3, tamaño3)
Producción:
Matriz inicial:
23 35 23 56 67 35 35 54 76
Matriz después de eliminar duplicados:
23 35 56 67 54 76
Matriz inicial:
5 6 1 1 7 5 8 2 7 8
Matriz después de eliminar duplicados:
5 6 1 7 8 2
Matriz inicial:
32 35 33 32 33 38 32 39
Matriz después de eliminar duplicados:
32 35 33 38 39
Programa JavaScript para eliminar elementos duplicados de una matriz sin clasificar
A continuación se muestra el programa JavaScript para eliminar elementos duplicados de una matriz sin clasificar:
// Programa JavaScript para eliminar elementos duplicados de una matriz sin clasificar
// Función para eliminar elementos duplicados de una matriz sin clasificar
function removeDuplicateElements (arr, size) {
sea m = new Map ();
para (sea i = 0; i // Imprime el elemento si no lo es
// presente en el mapa hash
if (m.get (arr [i]) == null) {
document.write (arr [i] + "");
}
// Inserta el elemento en el mapa hash
m.set (arr [i], verdadero);
}
document.write ("
");
}
function printArrayElements (arr, size) {
para (sea i = 0; Idocument.write (arr [i] + "");
}
document.write ("
");
}
sea arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76];
let size1 = arr1.length;
document.write ("Matriz inicial:" + "
");
printArrayElements (arr1, tamaño1);
document.write ("Matriz después de eliminar duplicados:" + "
");
removeDuplicateElements (arr1, tamaño1);
sea arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8];
let size2 = arr2.length;
document.write ("Matriz inicial:" + "
");
printArrayElements (arr2, tamaño2);
document.write ("Matriz después de eliminar duplicados:" + "
");
removeDuplicateElements (arr2, tamaño2);
sea arr3 = [32, 35, 33, 32, 33, 38, 32, 39];
let size3 = arr3.length;
document.write ("Matriz inicial:" + "
");
printArrayElements (arr3, tamaño3);
document.write ("Matriz después de eliminar duplicados:" + "
");
removeDuplicateElements (arr3, tamaño3);
Producción:
Matriz inicial:
23 35 23 56 67 35 35 54 76
Matriz después de eliminar duplicados:
23 35 56 67 54 76
Matriz inicial:
5 6 1 1 7 5 8 2 7 8
Matriz después de eliminar duplicados:
5 6 1 7 8 2
Matriz inicial:
32 35 33 32 33 38 32 39
Matriz después de eliminar duplicados:
32 35 33 38 39
Relacionada: Cómo contar las ocurrencias de un personaje dado en una cadena
Cómo eliminar elementos duplicados de una matriz ordenada
Planteamiento del problema
Se le da una matriz ordenada de números enteros. Debe eliminar los elementos duplicados de la matriz e imprimir la matriz con elementos únicos.
Ejemplo 1: Sea arr = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]
Matriz después de eliminar elementos duplicados: 1 2 4 6 8 9
Por tanto, la salida es 1 2 4 6 8 9.
Ejemplo 2: Sea arr = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
Matriz después de eliminar elementos duplicados: 1 2 3 4 5
Por tanto, la salida es 1 2 3 4 5.
Enfoque para eliminar elementos duplicados de una matriz ordenada
Puede eliminar elementos duplicados de una matriz ordenada siguiendo el enfoque a continuación:
- Inicialice las variables de índice i y j con 0.
- Itere la matriz.
- Si el i-ésimo elemento no es igual al (i + 1) -ésimo elemento, almacene el i-ésimo valor en arr [j] e incremente el valor de j.
- Incrementa el valor de i en cada iteración.
- Almacene el último valor de arr en arr [j].
- Finalmente devuelva el nuevo tamaño de la matriz, es decir, j. Los elementos únicos se almacenarán en la matriz desde el índice 0 hasta j-1.
Nota: La complejidad temporal de esta solución es O (n).
Programa C ++ para eliminar elementos duplicados de una matriz ordenada
A continuación se muestra el programa C ++ para eliminar elementos duplicados de una matriz ordenada:
// Programa C ++ para eliminar elementos duplicados de una matriz ordenada
#incluir
usando el espacio de nombres std;
// Función para eliminar elementos duplicados de una matriz ordenada
int removeDuplicateElements (int arr [], int tamaño)
{
int j = 0;
para (int i = 0; i {
// Si el i-ésimo elemento no es igual a (i + 1) el elemento,
// luego almacena el valor i-ésimo en arr [j]
si (arr [i]! = arr [i + 1])
{
arr [j] = arr [i];
j ++;
}
}
// Almacenando el último valor de arr en arr [j]
arr [j ++] = arr [tamaño-1];
return j;
}
printArrayElements vacío (int arr [], int tamaño)
{
para (int i = 0; I{
cout << arr [i] << "";
}
cout << endl;
}
int main ()
{
int arr1 [] = {1, 1, 1, 2, 4, 6, 8, 8, 9, 9};
int tamaño1 = tamaño de (arr1) / tamaño de (arr1 [0]);
cout << "Matriz inicial:" << endl;
printArrayElements (arr1, tamaño1);
cout << "Matriz después de eliminar duplicados:" << endl;
tamaño1 = eliminarElementosDuplicados (arr1, tamaño1);
printArrayElements (arr1, tamaño1);
int arr2 [] = {1, 1, 2, 2, 3, 3, 4, 4, 5, 5};
int tamaño2 = tamaño de (arr2) / tamaño de (arr2 [0]);
cout << "Matriz inicial:" << endl;
printArrayElements (arr2, tamaño2);
cout << "Matriz después de eliminar duplicados:" << endl;
tamaño2 = eliminarElementosDuplicados (arr2, tamaño2);
printArrayElements (arr2, tamaño2);
int arr3 [] = {10, 12, 12, 14, 16, 16, 18, 19, 19};
int tamaño3 = tamaño de (arr3) / tamaño de (arr3 [0]);
cout << "Matriz inicial:" << endl;
printArrayElements (arr3, tamaño3);
cout << "Matriz después de eliminar duplicados:" << endl;
tamaño3 = eliminarElementosDuplicados (arr3, tamaño3);
printArrayElements (arr3, tamaño3);
return 0;
}
Producción:
Matriz inicial:
1 1 1 2 4 6 8 8 9 9
Matriz después de eliminar duplicados:
1 2 4 6 8 9
Matriz inicial:
1 1 2 2 3 3 4 4 5 5
Matriz después de eliminar duplicados:
1 2 3 4 5
Matriz inicial:
10 12 12 14 16 16 18 19 19
Matriz después de eliminar duplicados:
10 12 14 16 18 19
Programa Python para eliminar elementos duplicados de una matriz ordenada
A continuación se muestra el programa Python para eliminar elementos duplicados de una matriz ordenada:
# Programa de Python para eliminar elementos duplicados de una matriz ordenada
def removeDuplicateElements (arr, tamaño):
j = 0
para i en el rango (tamaño-1):
si arr [i]! = arr [i + 1]:
arr [j] = arr [i]
j = j + 1
arr [j] = arr [tamaño-1]
j = j + 1
volver j
def printListElements (arr, tamaño):
para i en rango (tamaño):
print (arr [i], end = "")
imprimir()
arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]
tamaño1 = len (arr1)
print ("Matriz inicial:")
printListElements (arr1, tamaño1)
print ("Matriz después de eliminar duplicados:")
tamaño1 = removeDuplicateElements (arr1, tamaño1)
printListElements (arr1, tamaño1)
arr2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
tamaño2 = len (arr2)
print ("Matriz inicial:")
printListElements (arr2, tamaño2)
print ("Matriz después de eliminar duplicados:")
tamaño2 = removeDuplicateElements (arr2, tamaño2)
printListElements (arr2, tamaño2)
arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19]
tamaño3 = len (arr3)
print ("Matriz inicial:")
printListElements (arr3, tamaño3)
print ("Matriz después de eliminar duplicados:")
size3 = removeDuplicateElements (arr3, size3)
printListElements (arr3, tamaño3)
Producción:
Matriz inicial:
1 1 1 2 4 6 8 8 9 9
Matriz después de eliminar duplicados:
1 2 4 6 8 9
Matriz inicial:
1 1 2 2 3 3 4 4 5 5
Matriz después de eliminar duplicados:
1 2 3 4 5
Matriz inicial:
10 12 12 14 16 16 18 19 19
Matriz después de eliminar duplicados:
10 12 14 16 18 19
Relacionada: Introducción al algoritmo de ordenación por fusión
Programa JavaScript para eliminar elementos duplicados de una matriz ordenada
A continuación se muestra el programa JavaScript para eliminar elementos duplicados de una matriz ordenada:
// programa JavaScript para eliminar elementos duplicados de una matriz ordenada
// Función para eliminar elementos duplicados de una matriz ordenada
función removeDuplicateElements (arr, tamaño)
{
sea j = 0;
para (sea i = 0; i {
// Si el i-ésimo elemento no es igual a (i + 1) el elemento,
// luego almacena el valor i-ésimo en arr [j]
si (arr [i]! = arr [i + 1])
{
arr [j] = arr [i];
j ++;
}
}
// Almacenando el último valor de arr en arr [j]
arr [j ++] = arr [tamaño-1];
return j;
}
function printArrayElements (arr, size) {
para (sea i = 0; Idocument.write (arr [i] + "");
}
document.write ("
");
}
var arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9];
var size1 = arr1.length;
document.write ("Matriz inicial:" + "
");
printArrayElements (arr1, tamaño1);
document.write ("Matriz después de eliminar duplicados:" + "
");
tamaño1 = eliminarElementosDuplicados (arr1, tamaño1);
printArrayElements (arr1, tamaño1);
var arr2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5];
var size2 = arr2.length;
document.write ("Matriz inicial:" + "
");
printArrayElements (arr2, tamaño2);
document.write ("Matriz después de eliminar duplicados:" + "
");
tamaño2 = eliminarElementosDuplicados (arr2, tamaño2);
printArrayElements (arr2, tamaño2);
var arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19];
var size3 = arr3.length;
document.write ("Matriz inicial:" + "
");
printArrayElements (arr3, tamaño3);
document.write ("Matriz después de eliminar duplicados:" + "
");
tamaño3 = eliminarElementosDuplicados (arr3, tamaño3);
printArrayElements (arr3, tamaño3);
Producción:
Relacionada: Cómo encontrar el carácter que ocurre con más frecuencia en una cadena
Matriz inicial:
1 1 1 2 4 6 8 8 9 9
Matriz después de eliminar duplicados:
1 2 4 6 8 9
Matriz inicial:
1 1 2 2 3 3 4 4 5 5
Matriz después de eliminar duplicados:
1 2 3 4 5
Matriz inicial:
10 12 12 14 16 16 18 19 19
Matriz después de eliminar duplicados:
10 12 14 16 18 19
Practique problemas de cadenas y arreglos para su próxima entrevista
Los problemas de cadenas y conjuntos se encuentran entre los temas más solicitados en las entrevistas técnicas.
Si está buscando estar lo más preparado posible, debe practicar algunos problemas frecuentes, como cómo verificar si una cuerda es un palíndromo, cómo verificar si una cuerda es un palíndromo. un anagrama, encontrar el carácter que aparece con más frecuencia en una cadena, cómo invertir una matriz, ordenar y buscar algoritmos basados en matrices, cómo invertir una cadena, etc.
Aprenda a invertir una cadena de atrás hacia adelante en tres idiomas diferentes.
Leer siguiente
- Programación
- JavaScript
- Pitón
- Tutoriales de codificación
Yuvraj es estudiante de licenciatura en Ciencias de la Computación en la Universidad de Delhi, India. Le apasiona el desarrollo web Full Stack. Cuando no está escribiendo, está explorando la profundidad de diferentes tecnologías.
Suscríbete a nuestro boletín
¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!
Haga clic aquí para suscribirse