1. 题目考点
- dfs 回溯
- 找结束条件
2. 考点解析
结束条件包含在for边界中
class Solution {
List<List<Integer>> res = new ArrayList<>();
public List<List<Integer>> subsets(int[] nums) {
Stack<Integer> path = new Stack<>();
dfs(0, nums, path);
return res;
}
public void dfs(int start, int[] nums, Stack<Integer> path) {
res.add(new ArrayList(path));
for (int i = start; i < nums.length; i++) {
path.push(nums[i]);
dfs(i+1, nums, path);
path.pop();
}
// 关键: 结束条件 超过循环边界 默认自带 return
return ;
}
}