2025年- H69-Lc177--78.子集(回溯,组合)--Java版
1.题目描述
2.思路
3.代码实现
class Solution {public List<List<Integer>> subsets(int[] nums) {List<List<Integer>> res=new ArrayList<>();List<Integer> cur=new ArrayList<>();//从索引0开始递归backtracking(res,cur,nums,0);return res;}// 回溯函数:用于构建所有子集,传入变量private void backtracking(List<List<Integer>> res,List<Integer> cur,int[] nums,int start){// 将当前子集添加到结果集res.add(new ArrayList<>(cur));// 遍历每个元素,尝试加入到当前子集for(int i=start;i<nums.length;i++){// 做选择,加入当前元素cur.add(nums[i]); // 做选择,加入当前元素 递归处理下一个元素backtracking(res,cur,nums,i+1);// 撤销选择,回溯cur.remove(cur.size() - 1); // 修改为撤销 cur 中的元素}}
}