Ctrl K

Растущая тройка

Средняя
Дан массив целых чисел values. Проверьте, можно ли выбрать в нём три элемента с индексами i < j < k так, чтобы значения строго возрастали: values[i] < values[j] < values[k]. Элементы не обязаны стоять подряд. Верните True, если такая тройка есть, и False иначе. Попробуйте решить за один проход с O(1) дополнительной памяти.
Пример 1
values=[7, 3, 8, 1, 2, 5] → True

Подходят, например, индексы 3, 4, 5: 1 < 2 < 5.

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

Равные значения не считаются возрастанием.

Пример 3
values=[9, 2, 10, 1, 3] → False

Пары растущих элементов есть (2 < 10, 1 < 3), но третьего элемента, продолжающего любую из них, нет.

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

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