permute
leetCode 172
by sandfresh
JavaScript
function permute(nums) {
if (nums.length == 0)
return [];
let used = [];
let permutation = [];
function dfs(nums) {
if (nums.length == 0) {
permutation.push(used.slice());
}
for (let i = 0; i < nums.length; i++) {
used.push(nums.splice(i, 1)[0]);
dfs(nums);
//back tracking , restore before splice state
nums.splice(i, 0, used.pop());
}
}
dfs(nums);
return permutation;
}
console.log(permute([1, 2, 3]))