Inspiré par une question sur Stack Overflow. Le titre ici est entièrement de ma faute.
Le défi
Étant donné une liste d'entiers positifs contenant au moins deux entrées, remplacez chaque nombre par le minimum de toutes les entrées qui l'excluent.
Cas de 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]
Règles
L'algorithme devrait théoriquement fonctionner pour toute taille d'entrée (supérieure à un) et toutes valeurs (nombres entiers positifs). Il est accepté si le programme est limité par le temps, la mémoire ou les types de données et ne fonctionne donc que pour les nombres jusqu'à une valeur donnée ou pour la taille d'entrée jusqu'à une valeur donnée.
Les programmes ou fonctions sont autorisés, dans n'importe quel langage de programmation . Les échappatoires standard sont interdites.
La saisie peut être prise par n'importe quel moyen raisonnable ; et avec n'importe quel format. Idem pour la sortie. Les formats d'entrée et de sortie peuvent être différents.
Le code le plus court en octets gagne.
[4 3 2 2 5]
la sortie serait [2 2 2 2 2]
(c'est similaire au deuxième cas de test)
[4 3 2 2 5]
sortir?