Leetcode•May 12, 2025
Permutations
Hazrat Ali
Leetcode
Given an array nums
of distinct integers, return all the possible permutation. You can return the answer in any order.
Example 1:
Input: nums = [1,2,3] Output: [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
Example 2:
Input: nums = [0,1] Output: [[0,1],[1,0]]
Example 3:
Input: nums = [1] Output: [[1]]
Solution
/**
* @param {number[]} nums
* @return {number[][]}
*/
const permute = nums => {
const results = [];
backtracking(nums, {}, [], results);
return results;
};
const backtracking = (nums, used, solution, results) => {
if (solution.length === nums.length) {
results.push(solution.slice());
return;
}
for (let i = 0; i < nums.length; i++) {
if (used[i]) {
continue;
}
solution.push(nums[i]);
used[i] = true;
backtracking(nums, used, solution, results);
solution.pop();
used[i] = false;
}
}