Ceci est destiné à être un golf de code facile et de la taille d'une bouchée.
Le mex (nombre minimal exclu) d'une collection finie de nombres est le plus petit entier non négatif 0, 1, 2, 3, 4, ...qui n'apparaît pas dans la collection. En d'autres termes, c'est le minimum du complément. L'opération mex est au cœur de l'analyse des jeux impartiaux dans la théorie des jeux combinatoires .
Votre objectif est d'écrire un programme ou une fonction nommée pour calculer le mex en utilisant le moins d'octets possible.
Contribution:
Une liste d'entiers non négatifs dans n'importe quel ordre. Peut contenir des répétitions. Pour être concret, la longueur de la liste et la plage autorisée d'éléments seront à la fois comprises 0et 20inclusives.
La définition de "liste" ici est flexible. Toute structure qui représente une collection de nombres est très bien, tant qu'elle a un ordre fixe d'éléments et permet des répétitions. Il ne peut contenir aucune information auxiliaire à l'exception de sa longueur.
L'entrée peut être considérée comme un argument de fonction ou via STDIN.
Production
Le plus petit nombre exclu. Imprimez-le ou imprimez-le.
Cas de test
[1]
0
[0]
1
[2, 0]
1
[3, 1, 0, 1, 3, 3]
2
[]
0
[1, 2, 3]
0
[5, 4, 1, 5, 4, 8, 2, 1, 5, 4, 0, 7, 7]
3
[3, 2, 1, 0]
4
[0, 0, 1, 1, 2, 2, 3]
4
[1, 0, 7, 6, 3, 11, 15, 1, 9, 2, 3, 1, 5, 2, 3, 4, 6, 8, 1, 18]
10
0à 20la sortie correcte est 21. Je vais ajouter un test. Oui, la plage fixe le rend certainement plus facile, bien que l'on puisse encore sans doute l'utiliser sys.maxintou 2**64si je ne l'ai pas spécifié.