Como remover elementos duplicados de uma matriz em JavaScript, Python e C ++

Uma matriz é uma coleção de elementos com os mesmos tipos de dados. É uma estrutura de dados linear e é armazenada em locais de memória contíguos. Você pode realizar muitas operações básicas em uma matriz, como inserção, exclusão, pesquisa, atualização, passagem, etc.

Neste artigo, você aprenderá como remover elementos duplicados de matrizes classificadas e não classificadas.

Como remover elementos duplicados de uma matriz não classificada

Declaração do Problema

Você recebe uma matriz não classificada de inteiros. Você precisa remover os elementos duplicados da matriz e imprimir a matriz com elementos exclusivos.

Exemplo 1 : Let arr = [23, 35, 23, 56, 67, 35, 35, 54, 76]

Matriz após a remoção de elementos duplicados: 23 35 56 67 54 76

Assim, a saída é 23 35 56 67 54 76.

Exemplo 2 : Let arr = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]

Matriz após a remoção de elementos duplicados: 5 6 1 7 8 2

Portanto, a saída é 5 6 1 7 8 2.

Abordagem para remover elementos duplicados de uma matriz não classificada

Você pode remover elementos duplicados de uma matriz não classificada seguindo a abordagem abaixo:

  1. Inicialize um mapa hash que armazenará todos os elementos exclusivos do array.
  2. Percorra a matriz.
  3. Verifique se o elemento está presente na matriz.
  4. Se o elemento estiver presente na matriz, continue percorrendo.
  5. Se o elemento não estiver presente na matriz, imprima o elemento e armazene-o no mapa hash.

Observação : a complexidade de tempo dessa solução é O (n).

Programa C ++ para remover elementos duplicados de uma matriz não classificada

Abaixo está o programa C ++ para remover elementos duplicados de uma matriz não classificada:

 // 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;
}

Saída:

 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

Relacionado: Como imprimir "Hello, World!" nas linguagens de programação mais populares

Programa Python para remover elementos duplicados de uma matriz não classificada

Abaixo está o programa Python para remover elementos duplicados de uma matriz não classificada:

 # 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)

Saída:

 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 remover elementos duplicados de uma matriz não classificada

Abaixo está o programa JavaScript para remover elementos duplicados de uma matriz não classificada:

 // 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);

Saída:

 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

Relacionado: Como contar as ocorrências de um determinado caractere em uma string

Como remover elementos duplicados de uma matriz classificada

Declaração do Problema

Você recebe um array ordenado de inteiros. Você precisa remover os elementos duplicados da matriz e imprimir a matriz com elementos exclusivos.

Exemplo 1 : Let arr = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]

Array após remover elementos duplicados: 1 2 4 6 8 9

Portanto, a saída é 1 2 4 6 8 9.

Exemplo 2 : Let arr = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]

Matriz após a remoção de elementos duplicados: 1 2 3 4 5

Portanto, a saída é 1 2 3 4 5.

Abordagem para remover elementos duplicados de uma matriz classificada

Você pode remover elementos duplicados de uma matriz classificada seguindo a abordagem abaixo:

  1. Inicialize as variáveis ​​de índice i e j com 0.
  2. Repita a matriz.
  3. Se o i-ésimo elemento não for igual ao (i + 1) -ésimo elemento, armazene o i-ésimo valor em arr [j] e aumente o valor de j.
  4. Aumente o valor de i em cada iteração.
  5. Armazene o último valor de arr in arr [j].
  6. Finalmente, retorne o novo tamanho do array, ou seja, j. Elementos exclusivos serão armazenados na matriz do índice 0 a j-1.

Observação : a complexidade de tempo dessa solução é O (n).

Programa C ++ para remover elementos duplicados de uma matriz classificada

Abaixo está o programa C ++ para remover elementos duplicados de uma matriz classificada:

 // 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;
}

Saída:

 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 remover elementos duplicados de uma matriz classificada

Abaixo está o programa Python para remover elementos duplicados de uma matriz classificada:

 # 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)

Saída:

 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

Relacionado: Uma introdução ao algoritmo de classificação de mesclagem

Programa JavaScript para remover elementos duplicados de uma matriz classificada

Abaixo está o programa JavaScript para remover elementos duplicados de uma matriz classificada:

 // 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);

Saída:

Relacionado: Como encontrar o caractere que ocorre com mais frequência em uma string

 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

Pratique problemas de string e array para sua próxima entrevista

Problemas de string e array estão entre os tópicos mais questionados em entrevistas técnicas.

Se você deseja estar o mais preparado possível, deve praticar alguns problemas comuns, como verificar se uma string é um palíndromo, como verificar se uma string é um anagrama, encontrar o caractere que ocorre com mais frequência em uma string, como reverter uma matriz, classificar e pesquisar algoritmos baseados em matrizes, como reverter uma string, etc.