Ctrl K

Самая длинная «качель»

Средняя
Назовём последовательность «качелью», если разности соседних элементов строго чередуют знак: рост, спад, рост, … или спад, рост, спад, … Первая разность может быть любого знака, нулевая разность не допускается. Последовательность из одного элемента и из двух разных элементов — тоже качели. Например, [2, 9, 4, 6, 1] — качель (разности +7, −5, +2, −5), а [2, 5, 8, 1] — нет: первые две разности обе положительные. Дан массив values. Из него можно вычеркнуть любые элементы, сохранив порядок оставшихся. Верните наибольшую длину качели, которую можно так получить. Получится ли за O(n)?
Пример 1
values=[3, 8, 8, 5, 6, 2, 2, 9] → 6

Например, 3, 8, 5, 6, 2, 9: разности +5, −3, +1, −4, +7 чередуют знак. Длина 6. Повторы 8 и 2 приходится выбрасывать — разность 0 не считается ни ростом, ни спадом.

Пример 2
values=[10, 20, 30, 40] → 2

Последовательность только растёт, поэтому длиннее двух элементов не взять: например, 10, 40.

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

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