i записано ненулевое число jumps[i]. Стоя в клетке i, фишка прыгает на jumps[i] клеток: вперёд, если число положительное, и назад, если отрицательное. Круг замкнут: шаг вперёд с последней клетки ведёт на первую, шаг назад с первой — на последнюю.
Назовём **циклом** последовательность клеток, по которой фишка ходит бесконечно, если:
- в нём больше одной клетки;
- все его прыжки направлены в одну сторону — все вперёд или все назад.
Верните True, если в массиве есть хотя бы один такой цикл, иначе False.
Попробуйте решить за O(n) времени и O(1) дополнительной памяти.jumps=[1, 2, -1, 2] → True
Из клетки 1 прыжок на 2 вперёд ведёт в 3, а из 3 на 2 вперёд по кругу — снова в 1. Цикл 1 → 3 → 1 длиной 2, оба прыжка вперёд.
jumps=[3, -2, 4] → False
Клетка 0 прыгает на 3 вперёд и возвращается сама в себя — такой цикл длины 1 не считается. Путь 1 → 2 → 0 не замыкается, а из 0 дальше идёт только петля. Ответ False.
jumps=[1, -1] → False
Цикл 0 → 1 → 0 есть, но 0 прыгает вперёд, а 1 — назад.
jumps[i] ≤ 1000jumps[i] ≠ 0jumps=[1, 2, -1, 2]
True
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 114 тестов на сервере, включая скрытые.