Вступить в клуб →
сложнаяpythonХеш-таблицы, словари и множества

Самая длинная последовательность подряд идущих чисел через множество

Реализуйте функцию longest_streak(nums).

Вход: nums — список целых чисел в произвольном порядке (могут быть дубликаты, отрицательные числа и ноль).

Выход: целое число — длина самой длинной последовательности подряд идущих целых чисел, которые присутствуют в списке. Например, для [100, 4, 200, 1, 3, 2] это 4 (числа 1, 2, 3, 4). Дубликаты длину не увеличивают: в [1, 2, 2, 3] ответ 3.

Краевые случаи:

  • пустой список: вернуть 0;
  • один элемент: вернуть 1;
  • список из одинаковых значений: вернуть 1.

Требование по сложности: O(n) в среднем. Сортировать список нельзя — решение должно опираться на множество, а не на sorted.

Возвращать нужно только длину, сами числа не требуются.

заготовка решения

def longest_streak(nums):
    # ваш код
    pass

🔒 Проверка ответа — для участников клуба

  • Автотесты прямо в браузере
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела