【发布时间】:2015-10-14 18:35:23
【问题描述】:
当我输入这个函数 85 时,它只返回 85。我不明白为什么不以 5 作为第一个数字再次递归调用自己。
console.log(PermutationStep(85));
function PermutationStep(num) {
var perms = [];
rec(String(num), String(num).length, [], '');
return perms;
function rec(num, numLength, used, currPerm) {
console.log(currPerm);
if (currPerm.length === numLength) {
perms.push(num);
}
for (var j=0; j<numLength; j++) {
if (used[j]) continue;
else {
used[j]=true;
rec(num, numLength, used, currPerm+num[j]);
}
}
}
}
【问题讨论】:
-
你需要在 for-loop 中的 rec 完成后将
used[j]设置回false。
标签: javascript recursion permutation