78. Subsets

基本上是一遍过的

 1     public List<List<Integer>> subsets(int[] nums) {
 2         List<List<Integer>> res = new ArrayList<List<Integer>>();
 3         if(nums == null || nums.length == 0) {
 4             return res;
 5         }
 6         Arrays.sort(nums);
 7         for(int i = 0; i <= nums.length; i++) {
 8             helper(res, new ArrayList<Integer>(), nums, i, 0);
 9         }
10         return res;
11     }
12     
13     private void helper(List<List<Integer>> res, List<Integer> item, int[] nums, int len, int start) {
14         if(item.size() == len) {
15             if(!res.contains(item)) {
16                 res.add(new ArrayList<Integer>(item));
17             }
18         }
19         for(int i = start; i < nums.length; i++) {
20             item.add(nums[i]);
21             helper(res, item, nums, len, i + 1);
22             item.remove(item.size()-1);
23         }
24     }

 

posted @ 2016-03-31 08:18  warmland  阅读(147)  评论(0编辑  收藏  举报