幂集。编写一种方法,返回某集合的所有子集。集合中不包含重复的元素。
说明:解集不能包含重复的子集。
class Solution {
private List<List<Integer>> res = new ArrayList<>();
public List<List<Integer>> subsets(int[] nums) {
backtrack(nums, new ArrayList<>(), 0);
return res;
}
//回溯
private void backtrack(int[] nums, List<Integer> list, int start) {
//回溯前先把前一个放到res中
res.add(new ArrayList<>(list));
for (int i = start; i < nums.length; i++) {
//添加
list.add(nums[i]);
//回溯
backtrack(nums, list, i + 1);
//移除
list.remove(list.size() - 1);
}
}
}