题目: 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。题目链接
我的JavaScript解法
/**
* @param {number[]} nums
* @return {number[][]}
*/
var permute = function(nums) {
let result = [];
trace(nums, [], result);
return result;
};
var trace = (nums, track, result) => {
if(track.length == nums.length) {
result.push([...track]);
return;
}
for (let i = 0; i < nums.length; i++) {
if (track.includes(nums[i])) continue;
track.push(nums[i]);
trace(nums, track, result);
track.pop();
}
}
解析: 经典的回溯问题
- 时间复杂度:
- 空间复杂度: