使用 JavaScript 对无重复元素的数组进行全排列

2022-07-29,,,,

1、题目描述

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

2、解题思路

1、回溯算法
2、准备一个容器数组用来存放全排列的各种情况
3、准备一个小数组容器用来放每一种排列的情况
4、定义回溯函数用来判断数组是否符合情况
4.1、遍历以原始数组元素为根节点的数,可以想象原始数组元素的根节点是空数组
4.2、将小数组容器中未出现的元素push()进去
4.3、进入回溯函数进行判断,如果满足开头的判断条件则添加进容器数组
4.4、否则再次添加未出现的元素,进入回溯函数
4.5、将末尾元素pop()出去,就是节点回溯
5、把所有元素的树遍历完后即完成全排列
6、返回容器数组,即为所求全排列的所有情况

3、解题代码

/**
 * @param {number[]} nums
 * @return {number[][]}
 */
var permute = function(nums) {
    let len = nums.length;
    let res = [];
    let arr = [];
    let backTrack = (arr) => {
        if (arr.length == len) {
            res.push(arr);
            return;
        }
        for (let i=0; i<len; i++) {
            if (!arr.includes(nums[i])) {
				arr.push(nums[i]);
                backTrack(arr.slice());
                arr.pop();
            }
        }
    }
    backTrack(arr);
    return res;
}

本文地址:https://blog.csdn.net/qq_24264965/article/details/109265162

《使用 JavaScript 对无重复元素的数组进行全排列.doc》

下载本文的Word格式文档,以方便收藏与打印。