Given a set of distinct integers, nums, return all possible subsets.
Note:
- Elements in a subset must be in non-descending order.
- The solution set must not contain duplicate subsets.
For example,
If nums = [1,2,3]
, a solution is:
[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]
Java:
public class Solution {
public ArrayList<ArrayList<Integer>> subsets(int[] S) {
ArrayList<ArrayList<Integer>> listinlist = new ArrayList<ArrayList<Integer>>();
for(int k=0; k<S.length; k++)
{
int m = listinlist.size();
for(int i = 0; i< m; i++)
{
ArrayList<Integer> ltemp = listinlist.get(i);
ArrayList<Integer> ladd = new ArrayList<Integer>();
Boolean added = false;
for(int j = 0; j < ltemp.size(); j++)
{
if(ltemp.get(j) > S[k] && !added)
{
ladd.add(S[k]);
added = true;
}
ladd.add(ltemp.get(j));
}
if(!added)
ladd.add(S[k]);
listinlist.add(ladd);
}
ArrayList l1 = new ArrayList();
l1.add(S[k]);
listinlist.add(l1);
}
ArrayList<Integer> l2 = new ArrayList<Integer>();
listinlist.add(l2);
return listinlist;
}
}