/*
* @lc app=leetcode.cn id=46 lang=javascript
*
* [46] 全排列
*/
const backtrack = (list, temp, nums) => {
// 终止条件
if (temp.length === nums.length) {
list.push([...temp]);
return
}
for (let i = 0; i < nums.length; i++) {
if (temp.includes(nums[i])) {
continue
}
/**
* 放入一个
* 执行递推公式
* 弹出一个
*/
temp.push(nums[i])
backtrack(list, temp, nums)
temp.pop()
}
}
// @lc code=start
/**
* @param {number[]} nums
* @return {number[][]}
*/
var permute = function (nums) {
const list = []
backtrack(list, [], nums)
return list
};