Ctrl K

Близнецы, тройки и лесенки

Средняя
Дан массив целых чисел values. Его нужно разрезать на несколько непрерывных кусков (можно на один), чтобы каждый кусок был «хорошим». Кусок хороший, если он: - состоит ровно из двух равных чисел, например [6, 6]; - состоит ровно из трёх равных чисел, например [1, 1, 1]; - состоит ровно из трёх чисел, каждое на 1 больше предыдущего, например [8, 9, 10] (а [8, 10, 12] и [10, 9, 8] не подходят). Верните true, если такое разрезание существует, и false иначе.
Пример 1
values=[7, 7, 3, 4, 5] → True

Режем на [7, 7] и [3, 4, 5]: пара одинаковых и три подряд идущих числа.

Пример 2
values=[2, 2, 2, 2, 2] → True

[2, 2] и [2, 2, 2] — подходит.

Пример 3
values=[5, 6, 7, 9] → False

Последнее число 9 не во что включить: ни пары, ни тройки с ним не собрать.

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

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