js刷力扣 - 全排列

1.题目详情

给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。
js刷力扣 - 全排列_第1张图片

2.解题思路

回溯法。

3.代码实现


/**
 * @param {number[]} nums
 * @return {number[][]}
 */
var permute = function(nums) {
    const res = [], path = [];
    backtracking(nums, nums.length, []);
    return res;
    function backtracking(n, k, used) {
        // 长度跟nums一样时,即所有元素都有,则添加到新数组里去
        if(path.length === k) {
            res.push(Array.from(path));
            return;
        }
        for (let i = 0; i < k; i++ ) {
            if(used[i]) continue;
            path.push(n[i]);
            used[i] = true; 
            backtracking(n, k, used);
            path.pop();
            used[i] = false;
        }
    }
};

你可能感兴趣的:(javascript)