题目
思路
使用一个数组记录已经使用过的数
代码
/**
* @param {number[]} nums
* @return {number[][]}
*/
var permute = function(nums) {
let ans = [], tmp = [], status = new Array(nums.length).fill(true);
function back(tmp, status){
if(tmp.length === nums.length){
ans.push([...tmp]);
return;
}
for(let i = 0; i < nums.length; i++){
if(status[i]){
tmp.push(nums[i]);
status[i] = false;
back(tmp, status);
tmp.pop();
status[i] = true;
}
}
}
back(tmp, status);
return ans;
};