Created
July 6, 2013 00:31
-
-
Save cocodrips/5938028 to your computer and use it in GitHub Desktop.
ある集合の部分集合を全部書きだす
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ArrayList<ArrayList<Integer>> getSubsets(ArrayList<Integer> set, int index){ | |
ArrayList<ArrayList<Integer>> allSubsets; | |
if(set.size() == index){ | |
allSubsets = new ArrayList<ArrayList<Integer>>(); | |
allSubsets.add(new ArrayList<Integer>()); //空集合追加 | |
}else{ | |
allSubsets = getSubsets(set, index+1); | |
int item = set.get(index); | |
ArrayList<ArrayList<Integer>> moreSubset = new ArrayList<ArrayList<Integer>>(); | |
for (ArrayList<Integer> subset : allSubsets) { | |
ArrayList<Integer> newSubset = new ArrayList<Integer>(); | |
newSubset.addAll(subset); //いままでの全部いれたのと | |
newSubset.add(item); //新しい数字をたして | |
moreSubset.add(newSubset); //新しいArrayListを作ってmoreにいれる! | |
} | |
allSubsets.addAll(moreSubset); | |
} | |
return allSubsets; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment