Dies soll ein einfacher, mundgerechter Code-Golf sein.
Das mex (minimale ausgeschlossene Zahl) einer endlichen Auflistung von Zahlen ist die kleinste nicht negative Ganzzahl 0, 1, 2, 3, 4, ..., die nicht in der Auflistung enthalten ist. Mit anderen Worten, es ist das Minimum des Komplements. Die mex-Operation spielt eine zentrale Rolle bei der Analyse unparteiischer Spiele in der kombinatorischen Spieltheorie .
Ihr Ziel ist es, ein Programm oder eine benannte Funktion zu schreiben , um den mex mit möglichst wenigen Bytes zu berechnen.
Eingang:
Eine Liste nicht negativer Ganzzahlen in beliebiger Reihenfolge. Kann Wiederholungen enthalten. Der Vollständigkeit halber werden die Länge der Liste und der zulässige Bereich von Elementen sowohl zwischen 0als auch 20einschließlich liegen.
Die Definition von "Liste" ist hier flexibel. Jede Struktur, die eine Sammlung von Zahlen darstellt, ist in Ordnung, solange sie eine feste Reihenfolge von Elementen aufweist und Wiederholungen zulässt. Sie darf außer ihrer Länge keine zusätzlichen Informationen enthalten.
Die Eingabe kann als Funktionsargument oder über STDIN erfolgen.
Ausgabe
Die kleinste ausgeschlossene Zahl. Ausgeben oder ausdrucken.
Testfälle
[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
0zu 20, ist die korrekte Ausgabe 21. Ich werde einen Testfall hinzuzufügen. Ja, der feste Bereich macht es definitiv einfacher, obwohl man ihn immer noch verwenden könnte sys.maxintoder 2**64wenn ich ihn nicht spezifiziert hätte.