Ctrl K

Серии подряд идущих чисел

Средняя
Дан массив целых чисел values, отсортированный по неубыванию. Можно ли распределить все его элементы по нескольким (хотя бы одной) сериям так, чтобы: - каждый элемент попал ровно в одну серию; - в каждой серии числа шли подряд с шагом 1 (например, 3, 4, 5, 6); - в каждой серии было не меньше трёх чисел? Верните True, если можно, иначе False.
Пример 1
values=[4, 5, 5, 6, 6, 7] → True

Получаются серии 4, 5, 6 и 5, 6, 7 — обе длины 3.

Пример 2
values=[-2, -1, 0, 1, 1, 2] → False

Вторая 1 должна начать новую серию или продолжить старую. Серия -2…1 уже содержит одну 1, а 1, 2 — всего два числа, и третьего (3) нет. Разбить нельзя.

Пример 3
values=[0, 1, 2, 3, 4] → True

Подходит одна серия из всех пяти чисел.

Ограничения
  • 1 ≤ len(values) ≤ 10⁴
  • -1000 ≤ values[i] ≤ 1000
  • values отсортирован по неубыванию
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЗадания с перерывом на остывание СредняяМетки вразнобой СредняяУбрать половину списка СредняяПлан осушения прудов СредняяСамый узкий отрезок для всех списков Сложная
загружаем Python…
Вход
values=[4, 5, 5, 6, 6, 7]
Ожидается
True

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 126 тестов на сервере, включая скрытые.