Skip to content

Instantly share code, notes, and snippets.

@bitcpf
Last active August 29, 2015 14:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bitcpf/9b9c5c1ed4401d15a3ef to your computer and use it in GitHub Desktop.
Save bitcpf/9b9c5c1ed4401d15a3ef to your computer and use it in GitHub Desktop.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
public class Q_9_4 {
// LinkedList<LinkedList<Integer>> subsets;
//
// public Q_9_4(int[] set){
// subsets = new LinkedList<LinkedList<Integer>>();
//
// }
public ArrayList<ArrayList<Integer>> getSubsets(ArrayList<Integer> set){
ArrayList<ArrayList<Integer>> allsubsets = new ArrayList<ArrayList<Integer>>();
int max = 1 << set.size();
for(int k = 0;k < max; k++){
ArrayList<Integer> subset = converIntToSet(k,set);
allsubsets.add(subset);
}
return allsubsets;
}
public ArrayList<Integer> converIntToSet(int x, ArrayList<Integer> set) {
// TODO Auto-generated method stub
ArrayList<Integer> subset = new ArrayList<Integer>();
int idx = 0;
for(int k = x;k > 0; k >>= 1){
//System.out.println(Integer.toBinaryString(k));
if((k & 1) ==1){
subset.add(set.get(idx));
}
idx ++;
}
return subset;
}
public static void main(String[] args){
Q_9_4 testcase=new Q_9_4();
ArrayList<Integer> set = new ArrayList<Integer>();
set.add(0);
set.add(2);
set.add(3);
System.out.println(set);
System.out.println(testcase.getSubsets(set));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment