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

集合的所有子集

时间:2014-10-15 01:36:19      阅读:255      评论:0      收藏:0      [点我收藏+]

标签:ar   for   sp   ad   bs   new   res   return   public   

N个元素的集合的所有子集个数为2N个。

public ArrayList<ArrayList<Integer>> getSubsets(ArrayList<Integer> set, int index){

     ArrayList<ArrayList<Integer>> allsubsets;

     if(index==0){//终止,加空集合

           allsubsets = new ArrayList<arrayList<Integer>>();

           allsubsets.add(new ArrayList<Integer>());//加个空集合

      }

     else{

          allsubsets = getSubsets(set,index-1);

          int item = set.get(index);

         ArrayList<ArrayList<Integer>> moresubsets = new ArrayList<ArrayList<Integer>>();

         for(ArrayList<Integer> subset : allsubsets){

            ArrayList<Integer> newsubset = new ArrayList<Integer>();

            newsubset.addAll(subset);

            newsubset.add(intem);

            moresubsets.add(newsubset);

        } 

        allsubsets.addAll(moresubsets);

     }

     return allsubsets;

}

集合的所有子集

标签:ar   for   sp   ad   bs   new   res   return   public   

原文地址:http://www.cnblogs.com/chaiyesheng/p/4025459.html

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