全排列

作者: zjh111 | 来源:发表于2018-04-19 20:14 被阅读0次
function fullSort(arr){
    if(typeof arr === 'String'){
        arr=arr.split('')
    }
    function printArr(arr){
        var result = [];
        if (arr.length === 1) {
            result.push(arr);
            return result;
        }
        for (var i = 0; i < arr.length; i++) {
            var temp = []; 
            temp.push(arr[i]); //取任意一项放到temp的第一项
            var remain = arr.slice(0);//复制原数组到remain
            remain.splice(i,1); //去掉那一项
            var temp2 = printArr(remain).concat(); //剩下的项全排列,返回[[1,2],[1,3]]这样的数据
            for (var j = 0; j < temp2.length; j++) {
                temp2[j].unshift(temp[0]); // [[5,1,2],[5,1,3]]这样的数据
                result.push(temp2[j]);
            }
        }
        return result
    }
    return Array.from(new Set(printArr(arr).map(i=>i.join('')))) //去重 件里面数组改为字符串
}

相关文章

  • 全排列与字典序

    全排列 递归实现全排列; 首先来说递归算法实现全排列: 例如,对于{1,2,3,4}的例子进行全排列,其可以分解...

  • 全排列

    求全排列最简单的就是递归了123 的全排列共有 6 个, 123 的全排列等于以 1 开头 23 的全排列, 加上...

  • 全排列

    题目 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排...

  • 全排列

    递归的版本image.png

  • 全排列

  • 全排列

  • 全排列

    给出一个列表[1,2,3],其全排列为: [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,...

  • 全排列

    给定一个数字列表,返回其所有可能的排列。

  • 全排列

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

  • 全排列

    两种方法:第一种方法:递归: 从集合中依次选出每一个元素,作为排列的第一个元素,然后对剩余的元素进行全排列,如此递...

网友评论

      本文标题:全排列

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