[LintCode] Subsets
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
public ArrayList<ArrayList<Integer>> subsets(ArrayList<Integer> S) { // write your code here ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>(); if(S == null || S.size() == 0) return res; Collections.sort(S); ArrayList<Integer> tmp = new ArrayList<Integer>(); res.add(tmp); dfs(res, S, tmp, 0); return res; } public void dfs(ArrayList<ArrayList<Integer>> res, ArrayList<Integer> S, ArrayList<Integer> tmp, int pos) { for(int i = pos; i < S.size(); i++) { tmp.add(S.get(i)); res.add(new ArrayList<Integer>(tmp)); dfs(res, S, tmp, i+1); tmp.remove(tmp.size()-1); } } |
Leave A Comment