fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public ArrayList<ArrayList<Integer>> subsets(int[] S) {
  11. Arrays.sort(S);
  12. int len = S.length;
  13. ArrayList<ArrayList<Integer>> subsets = new ArrayList<ArrayList<Integer>>();
  14. //subsets.add(new ArrayList<Integer>()); //for adding the empty list
  15. for(int i = 0; i < Math.pow(2,len); i++) { //O( len*len) not sure
  16. int count = 0, t = i;
  17. ArrayList<Integer> subset = new ArrayList<Integer>();
  18. for(;t != 0; count++, t = t >> 1) {
  19. // while(t != 0) {
  20. if((t & 1) != 0) {
  21. subset.add(S[count]);
  22. }
  23. // count++;
  24. // t = t >> 1;
  25. }
  26. subsets.add(subset);
  27. }
  28. return subsets;
  29. }
  30.  
  31. public static void main (String[] args) throws java.lang.Exception
  32. {
  33. Ideone program = new Ideone();
  34. int[] S = {1,2,3};
  35. ArrayList<ArrayList<Integer>> result = program.subsets(S);
  36. for(ArrayList<Integer> subset: result) {
  37. System.out.print("[ ");
  38. for(Integer element:subset) {
  39. System.out.print(element + ", ");
  40. }
  41. System.out.println("]");
  42. }
  43. }
  44. }
Success #stdin #stdout 0.1s 320256KB
stdin
Standard input is empty
stdout
[ ]
[ 1, ]
[ 2, ]
[ 1, 2, ]
[ 3, ]
[ 1, 3, ]
[ 2, 3, ]
[ 1, 2, 3, ]