用js实现排列组合
在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的阶乘呢?