ring записаны по кругу: за последним элементом снова идёт первый, а перед первым — последний.
Для каждой позиции i сделайте следующее, независимо от остальных позиций:
- если ring[i] > 0, отсчитайте от позиции i ровно ring[i] шагов вправо;
- если ring[i] < 0, отсчитайте |ring[i]| шагов влево;
- если ring[i] == 0, никуда не двигайтесь.
Запишите в i-ю ячейку ответа число, которое стоит там, где вы остановились (при нулевом шаге это сам 0). Верните новый массив той же длины; значения всегда берутся из исходного ring.ring=[2, -1, 0, 5] → [0, 2, 0, 2]
Из позиции 0 два шага вправо — позиция 2, там 0. Из позиции 1 шаг влево — позиция 0, там 2. В позиции 2 стоит 0, он и остаётся. Из позиции 3 пять шагов вправо по кругу из четырёх — позиция 0, там 2.
ring=[-3, 4] → [4, 4]
Из позиции 0 три шага влево по кругу из двух — позиция 1, там 4. Из позиции 1 четыре шага вправо — снова позиция 1, там 4.
ring=[2, -1, 0, 5]
[0, 2, 0, 2]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 128 тестов на сервере, включая скрытые.