1.题目
2.解法
①集合+扩展法
class Solution {
public List<List<Integer>> subsets(int[] nums) {
List<List<Integer>> res = new ArrayList<List<Integer>>();
int n = nums.length;
res.add(new ArrayList<Integer>());
for(int i = 0; i < n; i++){
int size = res.size();
for(int j = 0; j < size; j++){
List<Integer> curSub = new ArrayList<Integer>(res.get(j));
curSub.add(nums[i]);
res.add(curSub);
}
}
return res;
}
}
②集合+dfs
class Solution {
public List<List<Integer>> subsets(int[] nums) {
List<List<Integer>> res = new ArrayList<>();
List<Integer> temp = new ArrayList<>();
int len = nums.length;
dfs(0, len, nums, res, temp);
return res;
}
private void dfs(int start, int len, int[] nums, List<List<Integer>> res, List<Integer> temp){
res.add(new ArrayList<>(temp));
for(int i = start; i < len; i++){
temp.add(nums[i]);
dfs(i + 1, len, nums, res, temp);
temp.remove(temp.size() - 1);
}
}
}
Enable Ginger
Cannot connect to Ginger Check your internet connection
or reload the browserDisable in this text fieldRephraseRephrase current sentence Log in to edit with Ginger×