小编Har*_*rry的帖子

在javascript中找到ith排列

给定一个arr大小的数组n,并且索引0<=i<n!我想返回第i个排列.

我能够编写一个获取所有排列的方法:

function permute (arr) {
  var permutations = [];
  if (arr.length === 1) {
    return [ arr ];
  }

  for (var i = 0; i <  arr.length; i++) { 
    var subPerms = permute(arr.slice(0, i).concat(arr.slice(i + 1)));
    for (var j = 0; j < subPerms.length; j++) {
      subPerms[j].unshift(arr[i]);
      permutations.push(subPerms[j]);
    }
  }
  return permutations;
}
Run Code Online (Sandbox Code Playgroud)

如何修剪它只获得递归的一个分支?

javascript arrays algorithm permutation factorial

15
推荐指数
1
解决办法
1072
查看次数

标签 统计

algorithm ×1

arrays ×1

factorial ×1

javascript ×1

permutation ×1