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 }