Код Senior Перебор с возвратом обновлено

Все перестановки

Условие

Все перестановки массива уникальных чисел.

Примеры

permutations([1, 2, 3]) // [[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]]
permutations([1]) // [[1]]

Как подойти

Тот же каркас, но выбор не бинарный, а из всех неиспользованных. Откатывать нужно оба изменения - про флаг забывают чаще, чем про массив. Сложность O(n!·n).

Подсказки: 2
  1. Отмечай использованные элементы.
  2. Откатывай и current, и отметку использования.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.

Термины по теме