题目
题解
这道题可以使用dfs+回溯
/*** @param {number[]} nums* @return {number[][]}*/var permute = function(nums) {// 结果const res = [];// 初始值let level = 0;// 数组交换位置const warp = (l, r) => {[nums[l], nums[r]] = [nums[r], nums[l]]}// dfs+回溯const backtracking = (level) => {// 递归出口if(level == nums.length - 1) {res.push([...nums]);return;}// 遍历// i = level 需要想想for(let i = level; i < nums.length; i++) {warp(i, level); // 交换位置backtracking(level+1); // 递归warp(i, level) // 恢复}}backtracking(level)return res;};

