一、题目
二、代码
class Solution {
List<List<Integer>> result = new LinkedList<>();
public List<List<Integer>> subsets(int[] nums) {
//路径
List<Integer> visited = new LinkedList<>();
//visited 路径,nums 选择列表
backtrack(visited, nums, 0);
return result;
}
// public void backtrack(路径,选择列表){
// if(满足结束条件){
// result.add(结果);
// }
// for(选择:选择列表){
// 做出选择;
// backtrack(路径,选择列表);
// 撤销选择;
//}
void backtrack(List<Integer>visited, int[] nums, int index){
result.add(new LinkedList(visited));
for(int i = index; i < nums.length; i++){
visited.add(nums[i]);
backtrack(visited, nums, i + 1);
visited.remove(visited.size() - 1);
}
}
}