Ctrl K

Цепочка замен

Средняя
Дан массив values из различных натуральных чисел и список замен swaps. Замены выполняются по порядку: замена swaps[i] = [x, y] находит в массиве число x и записывает на его место число y. Гарантируется, что в момент выполнения каждой замены число x есть в массиве, а числа y в нём нет, так что все числа в массиве всё время остаются различными. Верните массив после выполнения всех замен.
Пример 1
values=[5, 8, 2], swaps=[[8, 4], [5, 9], [4, 5]] → [9, 5, 2]

8 → 4 даёт [5, 4, 2], 5 → 9 даёт [9, 4, 2], 4 → 5 даёт [9, 5, 2]. Число 5 уже исчезло из массива, поэтому его можно вернуть.

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

Сначала 3 → 1, потом 1 → 3: массив вернулся к исходному.

Пример 3
values=[10, 20, 30], swaps=[[20, 7]] → [10, 7, 30]
Ограничения
  • 1 ≤ len(values), len(swaps) ≤ 10⁵
  • Все числа в values различны
  • len(swaps[i]) == 2
  • 1 ≤ values[i], swaps[i][0], swaps[i][1] ≤ 10⁶
  • Перед i-й заменой swaps[i][0] есть в массиве, а swaps[i][1] — нет
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиКак далеко уехал ровер СредняяПоследний шаг с серией нужной длины СредняяРаскопанные находки СредняяСтрока равна столбцу СредняяЗадания по порядку с отдыхом Средняя
загружаем Python…
Вход
values=[5, 8, 2], swaps=[[8, 4], [5, 9], [4, 5]]
Ожидается
[9, 5, 2]

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