Ctrl K

Лесенка квадратов

Средняя
Дан массив целых чисел values. *Лесенкой* назовём набор из нескольких элементов массива (не обязательно соседних), который после сортировки по возрастанию устроен так: каждое число, кроме первого, равно квадрату предыдущего. Например, [2, 4, 16] — лесенка. В лесенке должно быть хотя бы два числа. Верните длину самой длинной лесенки, которую можно собрать из элементов массива, или -1, если не получается ни одной.
Пример 1
values=[9, 5, 81, 3, 25, 7] → 3

Берём 3, 9 и 81: 9 = 3², 81 = 9². Цепочка 5 → 25 короче.

Пример 2
values=[10, 11, 12] → -1

Ни одно число не равно квадрату другого — лесенки нет.

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

Лесенка 2 → 4; вторая четвёрка её не удлиняет.

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

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