在leetcode上看到一个题,代码实现排列组合的。
记得大学上课时候,就用c写过,现在用js试试,顺便看看耗时。
先看看3的阶乘:
function permute(temArr,testArr){
var permuteArr=[];
var arr = testArr;
function innerPermute(temArr){
for(var i=0,len=arr.length; i<len; i++) {
if(temArr.length == len - 1) {
if(temArr.indexOf(arr[i]) < 0) {
permuteArr.push(temArr.concat(arr[i]));
}
continue;
}
if(temArr.indexOf(arr[i]) < 0) {
innerPermute(temArr.concat(arr[i]));
}
}
}
innerPermute(temArr);
return permuteArr;
} console.time('permute'); var arr1 = [1,2,3];
//var arr1 = [1,2,3,4,5];
console.dir(permute([],arr1)); console.timeEnd('permute');
如果是5的阶乘呢?