Problema
Restituisci la lista con i valori ripetuti rimossi, mantenendo la prima occorrenza di ciascun valore nel loro ordine originale.
Implementa remove_duplicates(numbers).
Input
numbers: La lista di interi.
Output
Restituisci la lista senza duplicati.
Vincoli
0 ≤ lunghezza ≤ 100.000
Esempi
Input:
numbers = [3, 1, 3, 2, 1]
Output atteso:
expected = [3, 1, 2]
Input:
std::vector<long long> numbers = {3, 1, 3, 2, 1};
Output atteso:
std::vector<long long> expected = {3, 1, 2};
Input:
long[] numbers = new long[] {3, 1, 3, 2, 1};
Output atteso:
long[] expected = new long[] {3, 1, 2};
Spiegazione
Mantieni 3, 1, poi 2; i successivi 3 e 1 vengono scartati: [3, 1, 2].
Input:
numbers = [7, 7, 7]
Output atteso:
expected = [7]
Input:
std::vector<long long> numbers = {7, 7, 7};
Output atteso:
std::vector<long long> expected = {7};
Input:
long[] numbers = new long[] {7, 7, 7};
Output atteso:
long[] expected = new long[] {7};
Spiegazione
Rimane solo il primo 7: [7].
Come affrontarlo
Prova prima da solo, poi apri un suggerimento alla volta.
Suggerimento 1
Conserva la prima occorrenza di ogni valore e ignora i duplicati successivi.
Suggerimento 2
Un set o una struttura simile ti aiuta a capire rapidamente se un valore è già stato visto.
Suggerimento 3
Mantieni l'ordine originale delle prime occorrenze, non quello ordinato.
Complessità attesa
tempo O(n), spazio aggiuntivo O(n)
Riferimenti
Questa sfida è adattata per CodeUtility. Segui la traccia e i vincoli sopra.