function permute(nums) {
let result = []; // 存放结果的数组
function backtracking(tempList, nums) {
if (nums.length === 0) {
result.push([...tempList]); // 将当前路径添加到结果数组中
return;
}
for (let i = 0; i < nums.length; i++) {
tempList.push(nums[i]); // 选取当前元素并添加到临时列表中
const remainingNums = [...nums]; // 复制原始数组作为新的子集
remainingNums.splice(i, 1); // 移除已经处理过的元素
backtracking(tempList, remainingNums); // 进入下一层递归
tempList.pop(); // 回溯,从临时列表中删除最后一个元素
}
}
backtracking([], nums); // 调用递归函数开始计算所有排列组合
return result;
}
// 示例输入
const inputArray = [1, 2, 3];
console.log(permute(inputArray));