Код 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
- Отмечай использованные элементы.
- Откатывай и current, и отметку использования.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.