Проверьте типы и положительность, затем сравните множество sequence с диапазоном 1..n и убедитесь, что размер множества равен длине списка. Не сортируйте исходный список на месте.
Как проверить тикеты на уникальный непрерывный диапазон
Проверьте типы и положительность, затем сравните множество sequence с диапазоном 1..n и убедитесь, что размер множества равен длине списка. Не сортируйте исходный список на месте.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Тикеты могут прийти в любом порядке; sequence должны образовывать непустой диапазон от 1 до n без повторов. Как проверить условие и не изменить входной список?
Ответ
Проверьте типы и положительность, затем сравните множество sequence с диапазоном 1..n и убедитесь, что размер множества равен длине списка. Не сортируйте исходный список на месте.
В Python bool является подклассом int, поэтому при запрете логических значений нужна строгая проверка типа или явное исключение bool. Пустой список обрабатывается по условию как ошибка. Для больших n достаточно проверить уникальность, min=1 и max=n; хранение множества требует O(n) памяти.