Generate all possible permutations of a list
by Krishna Ananthi
JavaScript
function permute(nums) {
this.res = []
this.backtrack = function (nums, idx) {
if (idx === nums.length) {
this.res.push([...nums])
return
}
for (let i = idx; i < nums.length; i++) {
console.log(idx, nums[idx], nums[i])
;[nums[idx], nums[i]] = [nums[i], nums[idx]]
console.log(idx + 1, nums[idx], nums[i])
this.backtrack(nums, idx + 1)
;[nums[idx], nums[i]] = [nums[i], nums[idx]]
console.log(idx + 1, nums[idx], nums[i])
}
this.backtrack(nums, 0)
return this.res
}
backtrack(nums)
}
console.log(permute([1, 2, 3]))