46. Permutations
Содержание
Решение задачи 46 “Permutations” с LeetCode.
Условие задачи
Дан массив уникальных чисел ( математическое множество) , необходимо вернуть все его возможные перестановки
пример
Input: [1,2,3]
Output:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]
Решение
Рекурсия
Идея алгоритма:
Добавляем фунцию хэлпер, которая на вход принимает начало массива. и массив оставшихся чисел.
Если оставшееся число одно, то добавляем его к началу массива, заворачиваем в массив массивов и возвращаем.
Если оставшихся чисел несколько, то в цикле
- берем текущий элемент
- добавляем его в массиву “начало”
- оставшиемся элементы массива добавляем в временный массив
- вызываем хэлпер передав туда начало массива и оставшиемся элементы
- полученный результат добавляем в массив результатов
возвращаем массив резултатом
|
|