Volver a los desafíos
Fácil 0 resueltos 0% de aceptación

Eliminar duplicados

Conserva solo la primera aparición de cada valor.

Lo que aprenderás

  • Seguir los valores vistos con un conjunto
  • Quedarse con la primera aparición de cada valor
  • Conservar el orden original

Problema

Ver original (inglés)

Devuelve la lista con los valores repetidos eliminados, manteniendo la primera aparición de cada valor en su orden original.

Implementa remove_duplicates(numbers).

Entrada

numbers: La lista de enteros.

Salida

Devuelve la lista sin duplicados.

Restricciones

0 ≤ longitud ≤ 100,000

Ejemplos

Ejemplo 1
Entrada:
numbers = [3, 1, 3, 2, 1]

Salida esperada:
expected = [3, 1, 2]
Entrada:
std::vector<long long> numbers = {3, 1, 3, 2, 1};

Salida esperada:
std::vector<long long> expected = {3, 1, 2};
Entrada:
long[] numbers = new long[] {3, 1, 3, 2, 1};

Salida esperada:
long[] expected = new long[] {3, 1, 2};

Explicación

Se conservan 3, 1 y luego 2; los siguientes 3 y 1 se descartan: [3, 1, 2].

Ejemplo 2
Entrada:
numbers = [7, 7, 7]

Salida esperada:
expected = [7]
Entrada:
std::vector<long long> numbers = {7, 7, 7};

Salida esperada:
std::vector<long long> expected = {7};
Entrada:
long[] numbers = new long[] {7, 7, 7};

Salida esperada:
long[] expected = new long[] {7};

Explicación

Solo se mantiene el primer 7: [7].

Cómo abordarlo

Inténtalo primero por tu cuenta y luego abre las pistas una a una.

Pista 1

Conserva la primera vez que aparece cada valor e ignora las repeticiones posteriores.

Pista 2

Un set o una estructura similar ayuda a decidir rápido si un valor ya se vio.

Pista 3

Preserva el orden original de las primeras apariciones, no el orden ordenado.

Complejidad esperada

tiempo O(n), espacio extra O(n)

Referencias

Este reto está adaptado para CodeUtility. Sigue el enunciado y las restricciones indicadas arriba.

Aprende de otros

Soluciones de la comunidad

Aún no hay soluciones publicadas. Resuelve este reto para compartir la primera.