JasonChang

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
 1 public class Solution {
 2     public ArrayList<ArrayList<Integer>> subsets(int[] S) {
 3         // IMPORTANT: Please reset any member data you declared, as
 4         // the same Solution instance will be reused for each test case.
 5         ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>();
 6         ArrayList<Integer> list = new ArrayList<Integer>();
 7         Arrays.sort(S);
 8         generate(result, list, S, 0, S.length);
 9         return result;
10     }
11     
12     private void generate(ArrayList<ArrayList<Integer>> result, ArrayList<Integer> list, int[] S, int depth, int length)
13     {
14         result.add(list);
15         if(depth == length)
16             return;
17         for(int i = depth; i < length; i++)
18         {
19             ArrayList<Integer> tmp = new ArrayList<Integer>();
20             tmp.addAll(list);
21             tmp.add(S[i]);
22             generate(result, tmp, S, i+1, length);
23         }
24     }
25 }

 

posted on 2013-11-12 13:57  JasonChang  阅读(200)  评论(0编辑  收藏  举报