JavaScript - 全排列1(回溯法)

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

输入: [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;
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。