Esto está destinado a ser un código de golf fácil de tamaño de bocado.
El mex (número excluido mínimo) de una colección finita de números es el número entero no negativo más pequeño 0, 1, 2, 3, 4, ...
que no aparece en la colección. En otras palabras, es el mínimo del complemento. La operación mex es fundamental para el análisis de juegos imparciales en la teoría de juegos combinatorios .
Su objetivo es escribir un programa o función con nombre para calcular el mex utilizando la menor cantidad de bytes posible.
Entrada:
Una lista de enteros no negativos en cualquier orden. Puede contener repeticiones. Para ser más concretos, la longitud de la lista y el rango permitido de elementos estarán entre 0
e 20
inclusive.
La definición de "lista" aquí es flexible. Cualquier estructura que represente una colección de números está bien, siempre que tenga un orden fijo de elementos y permita repeticiones. No puede incluir ninguna información auxiliar, excepto su longitud.
La entrada puede tomarse como un argumento de función o mediante STDIN.
Salida
El número excluido más pequeño. Salida o imprimirlo.
Casos de prueba
[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
a 20
, la salida correcta es 21. Voy a añadir un caso de prueba. Sí, el rango fijo definitivamente lo hace más fácil, aunque todavía se podría usar sys.maxint
o 2**64
si no lo especifico.