1. 程式人生 > >Leetcode 78.子集

Leetcode 78.子集

重復元素 pan bsp pub [1] == turn 輸入 list

子集

給定一組不含重復元素的整數數組 nums,返回該數組所有可能的子集(冪集)。

說明:解集不能包含重復的子集。

示例:

輸入: nums = [1,2,3]

輸出:

[

[3],

[1],

[2],

[1,2,3],

[1,3],

[2,3],

[1,2],

[]

]

 1 class Solution {
 2     public List<List<Integer>> subsets(int[] nums) {
 3         List<List<Integer>> res=new
ArrayList<List<Integer>>(); 4 for(int i=1;i<=nums.length;i++){ 5 List<Integer> temp=new ArrayList<Integer>(); 6 dfs(res,temp,nums,i,0); 7 } 8 res.add(new ArrayList<Integer>()); 9 return res; 10 } 11 12
public void dfs(List<List<Integer>> res,List<Integer> temp,int[] nums,int k,int m){ 13 if(k==0){ 14 res.add(new ArrayList<Integer>(temp)); 15 return; 16 } 17 for(int i=m;i<nums.length;i++){ 18 temp.add(nums[i]);
19 dfs(res,temp,nums,k-1,i+1); 20 temp.remove(temp.size()-1); 21 } 22 } 23 }

Leetcode 78.子集