我这个start就很妙,完美去重
// 冲刺063
import java.util.ArrayList;
import java.util.Deque;
import java.util.LinkedList;
import java.util.List;
// 冲刺063
class Solution {
public List<List<Integer>> subsets(int[] nums) {
List<List<Integer>> ans = new ArrayList<>();
dfs(nums, new LinkedList<>(), ans, 0);
return ans;
}
void dfs(int[] nums, Deque<Integer> now, List<List<Integer>> ans, int start) {
ans.add(new ArrayList<>(now));
for (int i = start; i < nums.length; i++) {
now.push(nums[i]);
dfs(nums, now, ans, i + 1);
now.pop();
}
}
}