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

instagram viewer

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 desta 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:

// Programa C ++ para remover elementos duplicados de uma matriz não classificada
#incluir
usando namespace std;
// Função para remover elementos duplicados de uma matriz não classificada
void removeDuplicateElements (int arr [], int size)
{
unordered_map m;
para (int i = 0; eu{
// Imprime o elemento se não for
// presente no mapa de hash
if (m.find (arr [i]) == m.end ())
{
cout << arr [i] << "";
}
// Insira o elemento no mapa hash
m [arr [i]] = verdadeiro;
}
cout << endl;
}
void printArrayElements (int arr [], tamanho interno)
{
para (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 << "Matriz inicial:" << endl;
printArrayElements (arr1, size1);
cout << "Array após remover duplicatas:" << endl;
removeDuplicateElements (arr1, size1);
int arr2 [] = {5, 6, 1, 1, 7, 5, 8, 2, 7, 8};
int size2 = sizeof (arr2) / sizeof (arr2 [0]);
cout << "Matriz inicial:" << endl;
printArrayElements (arr2, size2);
cout << "Array após remover duplicatas:" << endl;
removeDuplicateElements (arr2, size2);
int arr3 [] = {32, 35, 33, 32, 33, 38, 32, 39};
int size3 = sizeof (arr3) / sizeof (arr3 [0]);
cout << "Matriz inicial:" << endl;
printArrayElements (arr3, size3);
cout << "Array após remover duplicatas:" << endl;
removeDuplicateElements (arr3, size3);
return 0;
}

Saída:

Matriz inicial: 
23 35 23 56 67 35 35 54 76
Matriz após a remoção de duplicatas:
23 35 56 67 54 76
Matriz inicial:
5 6 1 1 7 5 8 2 7 8
Matriz após a remoção de duplicatas:
5 6 1 7 8 2
Matriz inicial:
32 35 33 32 33 38 32 39
Matriz após a remoção de duplicatas:
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:

# Programa Python para remover elementos duplicados de uma lista não classificada
def removeDuplicateElements (arr, size):
m = {}
para i no intervalo (tamanho):
# Imprime o elemento se não for
# presente no dicionário
se chegar [i] não em m:
imprimir (arr [i], fim = "")
# Insira o elemento no dicionário
m [arr [i]] = 1
impressão()
def printListElements (arr, size):
para i no intervalo (tamanho):
imprimir (arr [i], fim = "")
impressão()
arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76]
tamanho1 = len (arr1)
imprimir ("Lista inicial:")
printListElements (arr1, size1)
imprimir ("Lista após a remoção de duplicatas:")
removeDuplicateElements (arr1, size1)
arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]
tamanho2 = len (arr2)
imprimir ("Lista inicial:")
printListElements (arr2, size2)
imprimir ("Lista após a remoção de duplicatas:")
removeDuplicateElements (arr2, size2)
arr3 = [32, 35, 33, 32, 33, 38, 32, 39]
tamanho3 = len (arr3)
imprimir ("Lista inicial:")
printListElements (arr3, size3)
imprimir ("Lista após a remoção de duplicatas:")
removeDuplicateElements (arr3, size3)

Saída:

Matriz inicial: 
23 35 23 56 67 35 35 54 76
Matriz após a remoção de duplicatas:
23 35 56 67 54 76
Matriz inicial:
5 6 1 1 7 5 8 2 7 8
Matriz após a remoção de duplicatas:
5 6 1 7 8 2
Matriz inicial:
32 35 33 32 33 38 32 39
Matriz após a remoção de duplicatas:
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:

// Programa JavaScript para remover elementos duplicados de uma matriz não classificada
// Função para remover elementos duplicados de uma matriz não classificada
function removeDuplicateElements (arr, size) {
deixe m = novo Mapa ();
para (deixe i = 0; i // Imprime o elemento se não for
// presente no mapa de hash
if (m.get (arr [i]) == null) {
document.write (arr [i] + "");
}
// Insira o elemento no mapa hash
m.set (arr [i], verdadeiro);
}
document.write ("
");
}
function printArrayElements (arr, size) {
para (deixe i = 0; eudocument.write (arr [i] + "");
}
document.write ("
");
}
deixe arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76];
deixe size1 = arr1.length;
document.write ("Matriz inicial:" + "
");
printArrayElements (arr1, size1);
document.write ("Array após remover duplicatas:" + "
");
removeDuplicateElements (arr1, size1);
deixe arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8];
deixe size2 = arr2.length;
document.write ("Matriz inicial:" + "
");
printArrayElements (arr2, size2);
document.write ("Array após remover duplicatas:" + "
");
removeDuplicateElements (arr2, size2);
deixe arr3 = [32, 35, 33, 32, 33, 38, 32, 39];
deixe size3 = arr3.length;
document.write ("Matriz inicial:" + "
");
printArrayElements (arr3, size3);
document.write ("Array após remover duplicatas:" + "
");
removeDuplicateElements (arr3, size3);

Saída:

Matriz inicial: 
23 35 23 56 67 35 35 54 76
Matriz após a remoção de duplicatas:
23 35 56 67 54 76
Matriz inicial:
5 6 1 1 7 5 8 2 7 8
Matriz após a remoção de duplicatas:
5 6 1 7 8 2
Matriz inicial:
32 35 33 32 33 38 32 39
Matriz após a remoção de duplicatas:
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 da matriz, ou seja, j. Elementos exclusivos serão armazenados na matriz do índice 0 a j-1.

Observação: A complexidade de tempo desta 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:

// Programa C ++ para remover elementos duplicados de uma matriz classificada
#incluir
usando namespace std;
// Função para remover elementos duplicados de uma matriz classificada
int removeDuplicateElements (int arr [], int size)
{
int j = 0;
para (int i = 0; i {
// Se o iº elemento não for igual a (i + 1) o elemento,
// então armazene o iº valor em arr [j]
if (arr [i]! = arr [i + 1])
{
arr [j] = arr [i];
j ++;
}
}
// Armazenando o último valor de arr in arr [j]
arr [j ++] = arr [tamanho-1];
return j;
}
void printArrayElements (int arr [], tamanho interno)
{
para (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 << "Matriz inicial:" << endl;
printArrayElements (arr1, size1);
cout << "Array após remover duplicatas:" << 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 << "Matriz inicial:" << endl;
printArrayElements (arr2, size2);
cout << "Array após remover duplicatas:" << 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 << "Matriz inicial:" << endl;
printArrayElements (arr3, size3);
cout << "Array após remover duplicatas:" << endl;
size3 = removeDuplicateElements (arr3, size3);
printArrayElements (arr3, size3);
return 0;
}

Saída:

Matriz inicial: 
1 1 1 2 4 6 8 8 9 9
Matriz após a remoção de duplicatas:
1 2 4 6 8 9
Matriz inicial:
1 1 2 2 3 3 4 4 5 5
Matriz após a remoção de duplicatas:
1 2 3 4 5
Matriz inicial:
10 12 12 14 16 16 18 19 19
Matriz após a remoção de duplicatas:
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:

# Programa Python para remover elementos duplicados de uma matriz classificada
def removeDuplicateElements (arr, size):
j = 0
para i no intervalo (tamanho-1):
se arr [i]! = arr [i + 1]:
arr [j] = arr [i]
j = j + 1
arr [j] = arr [tamanho-1]
j = j + 1
retornar j
def printListElements (arr, size):
para i no intervalo (tamanho):
imprimir (arr [i], fim = "")
impressão()
arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]
tamanho1 = len (arr1)
print ("Matriz inicial:")
printListElements (arr1, size1)
print ("Array após remover duplicatas:")
size1 = removeDuplicateElements (arr1, size1)
printListElements (arr1, size1)
arr2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
tamanho2 = len (arr2)
print ("Matriz inicial:")
printListElements (arr2, size2)
print ("Array após remover duplicatas:")
size2 = removeDuplicateElements (arr2, size2)
printListElements (arr2, size2)
arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19]
tamanho3 = len (arr3)
print ("Matriz inicial:")
printListElements (arr3, size3)
print ("Array após remover duplicatas:")
size3 = removeDuplicateElements (arr3, size3)
printListElements (arr3, size3)

Saída:

Matriz inicial: 
1 1 1 2 4 6 8 8 9 9
Matriz após a remoção de duplicatas:
1 2 4 6 8 9
Matriz inicial:
1 1 2 2 3 3 4 4 5 5
Matriz após a remoção de duplicatas:
1 2 3 4 5
Matriz inicial:
10 12 12 14 16 16 18 19 19
Matriz após a remoção de duplicatas:
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:

// Programa JavaScript para remover elementos duplicados de uma matriz classificada
// Função para remover elementos duplicados de uma matriz classificada
function removeDuplicateElements (arr, size)
{
deixe j = 0;
para (deixe i = 0; i {
// Se o iº elemento não for igual a (i + 1) o elemento,
// então armazene o iº valor em arr [j]
if (arr [i]! = arr [i + 1])
{
arr [j] = arr [i];
j ++;
}
}
// Armazenando o último valor de arr in arr [j]
arr [j ++] = arr [tamanho-1];
return j;
}
function printArrayElements (arr, size) {
para (deixe 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 ("Matriz inicial:" + "
");
printArrayElements (arr1, size1);
document.write ("Array após remover duplicatas:" + "
");
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 ("Matriz inicial:" + "
");
printArrayElements (arr2, size2);
document.write ("Array após remover duplicatas:" + "
");
size2 = removeDuplicateElements (arr2, size2);
printArrayElements (arr2, size2);
var arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19];
var size3 = arr3.length;
document.write ("Matriz inicial:" + "
");
printArrayElements (arr3, size3);
document.write ("Array após remover duplicatas:" + "
");
size3 = removeDuplicateElements (arr3, size3);
printArrayElements (arr3, size3);

Saída:

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

Matriz inicial: 
1 1 1 2 4 6 8 8 9 9
Matriz após a remoção de duplicatas:
1 2 4 6 8 9
Matriz inicial:
1 1 2 2 3 3 4 4 5 5
Matriz após a remoção de duplicatas:
1 2 3 4 5
Matriz inicial:
10 12 12 14 16 16 18 19 19
Matriz após a remoção de duplicatas:
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.

E-mail
Como reverter uma string em C ++, Python e JavaScript

Aprenda a inverter uma string de trás para a frente em três idiomas diferentes.

Leia a seguir

Tópicos relacionados
  • Programação
  • JavaScript
  • Pitão
  • Tutoriais de codificação
Sobre o autor
Yuvraj Chandra (40 artigos publicados)

Yuvraj é estudante de graduação em Ciência da Computação na Universidade de Delhi, na Índia. Ele é apaixonado por Full Stack Web Development. Quando não está escrevendo, ele está explorando a profundidade de diferentes tecnologias.

Mais de Yuvraj Chandra

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!

Clique aqui para se inscrever