public class _78子集_hot {
private List<List<Integer>> result = new ArrayList<>();
public List<List<Integer>> subsets(int[] nums) {
backTrack(0, nums, new ArrayList<>());
return result;
}
private void backTrack(int start, int[] nums, List<Integer> cur) {
// 每次递归时,将当前子集放到result中
result.add(new ArrayList<>(cur));
for (int i = start; i < nums.length; i++) {
// 将nums[i] 添加到子集中
cur.add(nums[i]);
// 回溯
backTrack(i + 1, nums, cur);
// 回溯,移除最后一个元素,以便尝试下一个元素
cur.remove(cur.size() - 1);
}
}
}
回溯算法:子集
最新推荐文章于 2024-11-12 21:59:57 发布