美文网首页
JavaScript - 全排列1(回溯法)

JavaScript - 全排列1(回溯法)

作者: ElricTang | 来源:发表于2020-07-26 18:45 被阅读0次

    给定一个 没有重复 数字的序列,返回其所有可能的全排列。
    示例:

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

    完整代码:

    /**
     * @param {number[]} nums
     * @return {number[][]}
     */
    var permute = function(nums) {
        let arr = nums.sort((m, n)=> m - n);
        let res = [];
    
        function def(n, path) {
            for (let i = 0; i < n.length; i++) {
                let curPath = [...path, n[i]];
                let copy = [...n];
    
                copy.splice(i, 1);
                if (curPath.length === arr.length) res.push(curPath);
                if (copy.length > 0) def(copy, curPath);
            }
        }
    
        def(arr, []);
        return res;
    };
    

    相关文章

      网友评论

          本文标题:JavaScript - 全排列1(回溯法)

          本文链接:https://www.haomeiwen.com/subject/tyltrktx.html