码迷,mamicode.com
首页 > 其他好文 > 详细

全排列与全组合

时间:2018-03-18 22:29:33      阅读:604      评论:0      收藏:0      [点我收藏+]

标签:排列   log   and   实现   obj   gpo   array   fun   去重   

//全排列
var arr = ["a", "b", "c", "d"];
//实现全排列
function AllPermuAndCombi(arr,length){
        var Allresult=[];
           for(var i=1;i<=length;i++){
             Allresult=Allresult.concat(mainFunction(arr,i));

}
     return Allresult;
}
function mainFunction(Arr, num) {
         var resultArr = [],
            resultNum = 0,
                     iNow = 1;
              if(num == 1) {
               return Arr;
                }
        function PermuAndCombina(arr, iNow, str) {

                 for(var i = 0; i < arr.length; i++) {
                        var result = arr.concat();
                        var strClone = str;
                        strClone += result.splice(i, 1);
                         if(iNow == num) {
                             resultNum += result.length;
                              for(var j = 0; j < result.length; j++) {
                                        resultArr.push(strClone + result[j]);
                                }
                          } else {
                               PermuAndCombina(result,iNow+1, strClone);
                          }
                 }

       }
//组合,涉及的是数组去重
function unique(arr){
      for (var i=0;i<arr.length;i++) {
            arr[i]=arr[i].split("").sort().join("");
        }
       var result=[];
        var obj={};
      for (var i = 0; i < arrength; i++) {
             if (!obj[arr[i]]) {
                    result.push(arr[i]);
                      obj[arr[i]]=1;
                 }
        }

      return result;
}
       PermuAndCombina(Arr,iNow+1, "");
// resultArr.push(resultNum);
//resultArr=unique(resultArr)
         return resultArr;
}
console.log(mainFunction(arr,2));
console.log(AllPermuAndCombi(arr,3));
//组合
var Arr_un=[1,5,3,1,7,3];
//数组去重
function Array_unique(Arr){
var result=[];
var Obj={};
for (var i=0;i<Arr.length;i++) {
if (!Obj[Arr[i]]) {
result.push(Arr[i]);
Obj[Arr[i]]=1;
}
}
return result;
}
console.log(Array_unique(Arr_un));

全排列与全组合

标签:排列   log   and   实现   obj   gpo   array   fun   去重   

原文地址:https://www.cnblogs.com/laiso/p/8597686.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!