Ctrl K

Два прыжка по ссылкам

Лёгкая
В ряд стоят n ячеек с номерами от 0 до n - 1. В ячейке i лежит записка с номером ячейки links[i]. Все номера в записках разные, так что каждая ячейка упомянута ровно один раз. Для каждой ячейки i выясните, куда вы попадёте за два прыжка: сначала по записке из i, затем по записке из той ячейки, куда пришли. Верните список длины n, где на месте i стоит номер конечной ячейки. Дополнительно: получится ли обойтись без лишней памяти, переписав ответ прямо в links?
Пример 1
links=[2, 0, 1] → [1, 2, 0]

Из 0 идём в 2, из 2 — в 1; из 1 в 0, из 0 в 2; из 2 в 1, из 1 в 0. Получаем [1, 2, 0].

Пример 2
links=[1, 0, 3, 2] → [0, 1, 2, 3]

Ячейки разбиты на пары, которые указывают друг на друга, поэтому два шага возвращают на место.

Пример 3
links=[0] → [0]
Ограничения
  • 1 ≤ len(links) ≤ 1000
  • 0 ≤ links[i] < len(links)
  • Все значения links различны
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСколько горел свет ЛёгкаяПереложить в другой лоток ЛёгкаяЖурнал очков викторины ЛёгкаяЗеркало и негатив ЛёгкаяСтроки становятся столбцами Лёгкая
загружаем Python…
Вход
links=[2, 0, 1]
Ожидается
[1, 2, 0]

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