Cómo eliminar elementos duplicados de una matriz en JavaScript, Python y C ++
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:
// C++ program to remove duplicate elements from an unsorted array
#include <bits/stdc++.h>
using namespace std;
// Function to remove duplicate elements from an unsorted array
void removeDuplicateElements(int arr[], int size)
{
unordered_map<int, bool> m;
for(int i=0; i<size; i++)
{
// Print the element if it's not
// present in the hash map
if (m.find(arr[i]) == m.end())
{
cout << arr[i] << " ";
}
// Insert the element in the hash map
m[arr[i]] = true;
}
cout << endl;
}
void printArrayElements(int arr[], int size)
{
for(int i=0; i<size; i++)
{
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 << "Array after removing duplicates: " << 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 << "Array after removing duplicates: " << 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 << "Array after removing duplicates: " << endl;
removeDuplicateElements(arr3, size3);
return 0;
}
Producción:
Initial Array:
23 35 23 56 67 35 35 54 76
Array after removing duplicates:
23 35 56 67 54 76
Initial Array:
5 6 1 1 7 5 8 2 7 8
Array after removing duplicates:
5 6 1 7 8 2
Initial Array:
32 35 33 32 33 38 32 39
Array after removing duplicates:
32 35 33 38 39
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:
# Python program to remove duplicate elements from an unsorted list
def removeDuplicateElements(arr, size):
m = {}
for i in range(size):
# Print the element if it's not
# present in the dictionary
if arr[i] not in m:
print(arr[i], end = " ")
# Insert the element in the dictionary
m[arr[i]] = 1
print()
def printListElements(arr, size):
for i in range(size):
print(arr[i], end=" ")
print()
arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76]
size1 = len(arr1)
print("Initial List: ")
printListElements(arr1, size1)
print("List after removing duplicates: ")
removeDuplicateElements(arr1, size1)
arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]
size2 = len(arr2)
print("Initial List: ")
printListElements(arr2, size2)
print("List after removing duplicates: ")
removeDuplicateElements(arr2, size2)
arr3 = [32, 35, 33, 32, 33, 38, 32, 39]
size3 = len(arr3)
print("Initial List: ")
printListElements(arr3, size3)
print("List after removing duplicates: ")
removeDuplicateElements(arr3, size3)
Producción:
Initial Array:
23 35 23 56 67 35 35 54 76
Array after removing duplicates:
23 35 56 67 54 76
Initial Array:
5 6 1 1 7 5 8 2 7 8
Array after removing duplicates:
5 6 1 7 8 2
Initial Array:
32 35 33 32 33 38 32 39
Array after removing duplicates:
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:
// JavaScript program to remove duplicate elements from an unsorted array
// Function to remove duplicate elements from an unsorted array
function removeDuplicateElements(arr, size) {
let m = new Map();
for (let i = 0; i < size; i++) {
// Print the element if it's not
// present in the hash map
if (m.get(arr[i]) == null) {
document.write(arr[i] + " ");
}
// Insert the element in the hash map
m.set(arr[i], true);
}
document.write("<br>");
}
function printArrayElements(arr, size) {
for(let i=0; i<size; i++) {
document.write(arr[i] + " ");
}
document.write("<br>");
}
let arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76];
let size1 = arr1.length;
document.write("Initial Array: " + "<br>");
printArrayElements(arr1, size1);
document.write("Array after removing duplicates: " + "<br>");
removeDuplicateElements(arr1, size1);
let arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8];
let size2 = arr2.length;
document.write("Initial Array: " + "<br>");
printArrayElements(arr2, size2);
document.write("Array after removing duplicates: " + "<br>");
removeDuplicateElements(arr2, size2);
let arr3 = [32, 35, 33, 32, 33, 38, 32, 39];
let size3 = arr3.length;
document.write("Initial Array: " + "<br>");
printArrayElements(arr3, size3);
document.write("Array after removing duplicates: " + "<br>");
removeDuplicateElements(arr3, size3);
Producción:
Initial Array:
23 35 23 56 67 35 35 54 76
Array after removing duplicates:
23 35 56 67 54 76
Initial Array:
5 6 1 1 7 5 8 2 7 8
Array after removing duplicates:
5 6 1 7 8 2
Initial Array:
32 35 33 32 33 38 32 39
Array after removing duplicates:
32 35 33 38 39
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, entonces 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:
// C++ program to remove duplicate elements from a sorted array
#include <iostream>
using namespace std;
// Function to remove duplicate elements from a sorted array
int removeDuplicateElements(int arr[], int size)
{
int j = 0;
for (int i = 0; i < size-1; i++)
{
// If ith element is not equal to (i+1)th element,
// then store ith value in arr[j]
if (arr[i] != arr[i+1])
{
arr[j] = arr[i];
j++;
}
}
// Storing the last value of arr in arr[j]
arr[j++] = arr[size-1];
return j;
}
void printArrayElements(int arr[], int size)
{
for(int i=0; i<size; i++)
{
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 << "Array after removing duplicates: " << 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 << "Array after removing duplicates: " << 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 << "Array after removing duplicates: " << endl;
size3 = removeDuplicateElements(arr3, size3);
printArrayElements(arr3, size3);
return 0;
}
Producción:
Initial Array:
1 1 1 2 4 6 8 8 9 9
Array after removing duplicates:
1 2 4 6 8 9
Initial Array:
1 1 2 2 3 3 4 4 5 5
Array after removing duplicates:
1 2 3 4 5
Initial Array:
10 12 12 14 16 16 18 19 19
Array after removing duplicates:
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:
# Python program to remove duplicate elements from a sorted array
def removeDuplicateElements(arr, size):
j = 0
for i in range(size-1):
if arr[i] != arr[i+1]:
arr[j] = arr[i]
j = j+1
arr[j] = arr[size-1]
j = j+1
return j
def printListElements(arr, size):
for i in range(size):
print(arr[i], end=" ")
print()
arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]
size1 = len(arr1)
print("Initial Array:")
printListElements(arr1, size1)
print("Array after removing duplicates:")
size1 = removeDuplicateElements(arr1, size1)
printListElements(arr1, size1)
arr2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
size2 = len(arr2)
print("Initial Array:")
printListElements(arr2, size2)
print("Array after removing duplicates:")
size2 = removeDuplicateElements(arr2, size2)
printListElements(arr2, size2)
arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19]
size3 = len(arr3)
print("Initial Array:")
printListElements(arr3, size3)
print("Array after removing duplicates:")
size3 = removeDuplicateElements(arr3, size3)
printListElements(arr3, size3)
Producción:
Initial Array:
1 1 1 2 4 6 8 8 9 9
Array after removing duplicates:
1 2 4 6 8 9
Initial Array:
1 1 2 2 3 3 4 4 5 5
Array after removing duplicates:
1 2 3 4 5
Initial Array:
10 12 12 14 16 16 18 19 19
Array after removing duplicates:
10 12 14 16 18 19
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:
// JavaScript program to remove duplicate elements from a sorted array
// Function to remove duplicate elements from a sorted array
function removeDuplicateElements(arr, size)
{
let j = 0;
for (let i = 0; i < size-1; i++)
{
// If ith element is not equal to (i+1)th element,
// then store ith value in arr[j]
if (arr[i] != arr[i+1])
{
arr[j] = arr[i];
j++;
}
}
// Storing the last value of arr in arr[j]
arr[j++] = arr[size-1];
return j;
}
function printArrayElements(arr, size) {
for(let i=0; i<size; i++) {
document.write(arr[i] + " ");
}
document.write("<br>");
}
var arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9];
var size1 = arr1.length;
document.write("Initial Array: " + "<br>");
printArrayElements(arr1, size1);
document.write("Array after removing duplicates: " + "<br>");
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("Initial Array: " + "<br>");
printArrayElements(arr2, size2);
document.write("Array after removing duplicates: " + "<br>");
size2 = removeDuplicateElements(arr2, size2);
printArrayElements(arr2, size2);
var arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19];
var size3 = arr3.length;
document.write("Initial Array: " + "<br>");
printArrayElements(arr3, size3);
document.write("Array after removing duplicates: " + "<br>");
size3 = removeDuplicateElements(arr3, size3);
printArrayElements(arr3, size3);
Producción:
Initial Array:
1 1 1 2 4 6 8 8 9 9
Array after removing duplicates:
1 2 4 6 8 9
Initial Array:
1 1 2 2 3 3 4 4 5 5
Array after removing duplicates:
1 2 3 4 5
Initial Array:
10 12 12 14 16 16 18 19 19
Array after removing duplicates:
10 12 14 16 18 19
Practique problemas de cadenas y arreglos para su próxima entrevista
Los problemas de cadenas y matrices 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 cadena es un palíndromo, cómo verificar si una cadena es 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.