- Subsets
Given a set of distinct integers, nums, return all possible subsets (the power set).
Note: The solution set must not contain duplicate subsets.
Example:
Input: nums = [1,2,3]
Output:
[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]
java:
class Solution {
public List<List<Integer>> subsets(int[] nums) {
List<List<Integer>> res = new ArrayList<List<Integer>>();
List<Integer> subset = new ArrayList<Integer>();
res.add(subset);
Arrays.sort(nums);
dosubset(nums,res,subset,0);
return res;
}
private void dosubset(int[] nums, List res,List subset,int start){
if(start != nums.length){
for(int i = start;i<nums.length;i++){
subset.add(nums[i]);
res.add(new ArrayList(subset));
dosubset(nums,res,subset,i+1);
subset.remove(subset.get(subset.size()-1));
}
}
}
}
python
class Solution:
def subsets(self, nums: List[int]) -> List[List[int]]:
res = []
self.dfs(sorted(nums), 0, [], res)
return res
def dfs(self, nums, index, path, res):
res.append(path)
for i in range(index, len(nums)):
self.dfs(nums, i+1, path+[nums[i]], res)