用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的阶乘呢?

 

  

 

posted @ 2017-05-28 22:58  leaf+  阅读(9166)  评论(0编辑  收藏  举报