LC-全排列 发表于 2019-07-20 更新于 2020-03-22 分类于 LeetCode 题目描述全排列 给定一个没有重复数字的序列,返回其所有可能的全排列。 12345678910输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]] 代码实现这是一个典型的回溯算法的应用,在这段代码里 temp.pop() 是点睛之笔 12345678910111213141516171819202122232425/** * @param {number[]} nums * @return {number[][]} */var permute = function (nums) { let result = []; function backTracking(temp, remain) { if (remain.length === 0) { result.push(temp.slice()); } for (let i = 0; i < remain.length; i++) { temp.push(remain[i]); backTracking(temp, [...remain.slice(0, i), ...remain.slice(i + 1)]); // backTracking(temp, remain.slice(0, i).concat(remain.slice(i+1))); temp.pop(); } } backTracking([], nums); return result;};console.log(permute([1, 2, 3]))// [[1, 2, 3], [2, 1, 3], [2, 3, 1], [1, 3, 2], [3, 1, 2], [3, 2, 1]]