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
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].
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.