Это предназначено, чтобы быть простым, размером с укус размером с клюшку для гольфа.
MEX (минимальное количество исключены) из конечного набора чисел является наименьшим неотрицательным целым числом , 0, 1, 2, 3, 4, ...
что вовсе не в коллекции. Другими словами, это минимум дополнения. Операция mex занимает центральное место в анализе беспристрастных игр в теории комбинаторных игр .
Ваша цель - написать программу или именованную функцию для вычисления mex, используя как можно меньше байтов.
Входные данные:
Список неотрицательных целых чисел в любом порядке. Может содержать повторы. Для конкретности длина списка и допустимый диапазон элементов будут как между, так 0
и 20
включительно.
Определение «список» здесь является гибким. Любая структура, представляющая коллекцию чисел, хороша, если она имеет фиксированный порядок элементов и допускает повторы. Он может не содержать никакой вспомогательной информации, кроме его длины.
Ввод может быть принят в качестве аргумента функции или через STDIN.
Выход
Наименьшее исключенное число. Выведите или распечатайте его.
Контрольные примеры
[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
для 20
, правильный вывод - 21. Я добавлю тестовый пример. Да, фиксированный диапазон определенно делает это легче, хотя можно все еще использовать sys.maxint
или, 2**64
если бы я не указал это.