Retour aux défis
Facile 0 résolus 0 % de réussite

Supprimer les doublons

Ne conserver que la première occurrence de chaque valeur.

Ce que vous allez apprendre

  • Suivre les valeurs vues avec un ensemble
  • Garder la première occurrence de chaque valeur
  • Conserver l'ordre d'origine

Problème

Renvoyez la liste avec les valeurs répétées supprimées, en gardant la première occurrence de chaque valeur dans son ordre d'origine.

Implémentez remove_duplicates(numbers).

Entrée

numbers : La liste d'entiers.

Sortie

Renvoyez la liste sans doublons.

Contraintes

0 ≤ longueur ≤ 100 000

Exemples

Exemple 1
Entrée :
numbers = [3, 1, 3, 2, 1]

Sortie attendue :
expected = [3, 1, 2]
Entrée :
std::vector<long long> numbers = {3, 1, 3, 2, 1};

Sortie attendue :
std::vector<long long> expected = {3, 1, 2};
Entrée :
long[] numbers = new long[] {3, 1, 3, 2, 1};

Sortie attendue :
long[] expected = new long[] {3, 1, 2};

Explication

Conservez 3, puis 1, puis 2 ; les 3 et 1 suivants sont ignorés : [3, 1, 2].

Exemple 2
Entrée :
numbers = [7, 7, 7]

Sortie attendue :
expected = [7]
Entrée :
std::vector<long long> numbers = {7, 7, 7};

Sortie attendue :
std::vector<long long> expected = {7};
Entrée :
long[] numbers = new long[] {7, 7, 7};

Sortie attendue :
long[] expected = new long[] {7};

Explication

Seul le premier 7 est conservé : [7].

Comment l'aborder

Essayez d'abord seul, puis ouvrez les indices un par un.

Indice 1

Gardez la première occurrence de chaque valeur et ignorez les répétitions suivantes.

Indice 2

Un set ou une structure similaire aide à savoir rapidement si une valeur a déjà été vue.

Indice 3

Préservez l’ordre original des premières occurrences, pas l’ordre trié.

Complexité attendue

temps O(n), espace supplémentaire O(n)

Références

Ce défi a été adapté pour CodeUtility. Suivez l'énoncé et les contraintes ci-dessus.

Apprenez des autres

Solutions de la communauté

Aucune solution publiée pour l'instant. Résolvez ce défi pour partager la première.