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

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM