78. Subsets (not use befroe, so int I = start, dfs(i+1)
Previous39. Combination Sum (not use befroe, so int I = start, dfs(i) -> is i !!Next77. Combinations (not use before, so int I = start, dfs(i+1
Last updated
Last updated
class Solution {
public List<List<Integer>> subsets(int[] nums) {
List<List<Integer>> res = new ArrayList<>();
if (nums == null || nums.length == 0) return res;
helper(res, new ArrayList<>(), nums, 0);
return res;
}
// backtracking, [], [1], [2], [3], index +1 [1,2]...
private void helper(List<List<Integer>> res, List<Integer> list, int[] nums, int index) {
res.add(new ArrayList<>(list));
for (int i = index; i< nums.length; i++) {
list.add(nums[i]);
helper(res, list, nums, i + 1);
list.remove(list.size() - 1);
}
}
}