Как проверить тикеты на уникальный непрерывный диапазон

Проверьте типы и положительность, затем сравните множество sequence с диапазоном 1..n и убедитесь, что размер множества равен длине списка. Не сортируйте исходный список на месте.

Короткий ответ

Что ответить на собеседовании

Проверьте типы и положительность, затем сравните множество sequence с диапазоном 1..n и убедитесь, что размер множества равен длине списка. Не сортируйте исходный список на месте.

Подробный разбор

Ответ с пояснениями

Условие

Тикеты могут прийти в любом порядке; sequence должны образовывать непустой диапазон от 1 до n без повторов. Как проверить условие и не изменить входной список?

Ответ

Проверьте типы и положительность, затем сравните множество sequence с диапазоном 1..n и убедитесь, что размер множества равен длине списка. Не сортируйте исходный список на месте.

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

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее