美文网首页
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(回溯法)

    给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [...

  • JavaScript - 全排列2(回溯法)

    给定一个可包含重复数字的序列,返回所有不重复的全排列。示例:输入: [1,1,2]输出:[ [1,1,2], [1...

  • 排列组合与回溯法

    排列,组合,回溯法 ex.1 ex.2 排列 全排列:从第一个数字起,每个数字分别与它后面的数字交换 去重全排列:...

  • 回溯法(DFS)

    应用场景 回溯法的求解目标是找出解空间树中满足约束条件的所有解。 回溯实现全排列

  • 回溯法解决全排列问题

    基本思想是不断的扩大排序的规模public class Solution{ public void permuta...

  • 回溯--全排列

    目录[https://www.jianshu.com/p/85e18c21317a] 题号[https://lee...

  • 排列,组合,子集专题

    排列组合的题用回溯法和递归基本可以解决,总结一下。46.全排列 47.全排列II 47比46多了个序列可重复的条件...

  • Permutation 全排列

    递归解决全排列(回溯法) 回溯法的思路也不难理解。考察其如何递归,以1234为例。首先需要考虑第一位,可以以此与后...

  • Leetcode_46_全排列_hn

    题目描述 给定一个没有重复数字的序列,返回其所有可能的全排列。 示例 示例 1: 解答方法 方法一:回溯法 思路 ...

  • 全排列

    回溯实现全排列 给定一组数,如:1,2,3。编程实现全排列形式:123,132,213,231,312,321

网友评论

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

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