Ispirato da una domanda sopra Stack Overflow. Il titolo qui è interamente colpa mia.
La sfida
Dato un elenco di numeri interi positivi contenenti almeno due voci, sostituire ciascun numero con il minimo di tutte le voci escluso se stesso.
Casi test
[4 3 2 5] -> [2 2 3 2]
[4 2 2 5] -> [2 2 2 2]
[6 3 5 5 8] -> [3 5 3 3 3]
[7 1] -> [1 7]
[9 9] -> [9 9]
[9 8 9] -> [8 9 8]
Regole
L'algoritmo dovrebbe teoricamente funzionare per qualsiasi dimensione di input (maggiore di uno) e valori (numeri interi positivi). È accettato se il programma è limitato da tempo, memoria o tipi di dati e quindi funziona solo per numeri fino a un determinato valore o per dimensioni di input fino a un determinato valore.
Programmi o funzioni sono consentiti, in qualsiasi linguaggio di programmazione . Sono vietate le scappatoie standard .
L'input può essere preso con qualsiasi mezzo ragionevole ; e con qualsiasi formato. Lo stesso per l'output. I formati di input e output possono essere diversi.
Vince il codice più breve in byte.
[4 3 2 2 5]
l'output sarebbe [2 2 2 2 2]
(questo è simile al secondo caso di test)
[4 3 2 2 5]
produrre?