Mooo-star / fe-algorithm

0 stars 0 forks source link

全排列 #24

Open Mooo-star opened 4 months ago

Mooo-star commented 4 months ago

给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。

示例 1:

输入:nums = [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

示例 2:

输入:nums = [0,1] 输出:[[0,1],[1,0]]

示例 3:

输入:nums = [1] 输出:[[1]]

Mooo-star commented 4 months ago
/**
 * @param {number[]} nums
 * @return {number[][]}
 */
var permute = function (nums) {

    const len = nums.length;
    const result = [];

    function backtrack(used, path) {
        if (path.length === len) {
            result.push(path)
            return
        }

        for (let i = 0; i < len; i++) {
            if (used[i]) continue

            used[i] = true
            backtrack(used, [...path, nums[i]])
            used[i] = false
        }

    }

    backtrack([], [])

    return result
};