Questo è inteso per essere un codice-golf facile e di dimensioni ridotte.
Il mex (numero minimo escluso) di una raccolta finita di numeri è il numero intero non negativo più piccolo 0, 1, 2, 3, 4, ...che non appare nella raccolta. In altre parole, è il minimo del complemento. L'operazione mex è fondamentale per l'analisi dei giochi imparziali nella teoria dei giochi combinatoria .
Il tuo obiettivo è quello di scrivere un programma o una funzione con nome per calcolare il Messico usando il minor numero di byte possibile.
Ingresso:
Un elenco di numeri interi non negativi in qualsiasi ordine. Può contenere ripetizioni. Per concretezza, la lunghezza dell'elenco e la gamma consentita di elementi sarà sia compresa 0che compresa 20.
La definizione di "elenco" qui è flessibile. Qualsiasi struttura che rappresenta una raccolta di numeri va bene, purché abbia un ordinamento fisso di elementi e consenta la ripetizione. Non può includere alcuna informazione ausiliaria tranne la sua lunghezza.
L'input può essere preso come argomento di funzione o tramite STDIN.
Produzione
Il numero escluso più piccolo. Uscita o stampa.
Casi 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
0per 20l'uscita corretta è 21. io aggiungere un banco di prova. Sì, l'intervallo fisso rende decisamente più semplice, anche se si potrebbe ancora usare sys.maxinto 2**64se non lo avessi specificato.