回溯算法心得
class Solution {
List<List<Integer>> res = new LinkedList<>();
LinkedList<Integer> track = new LinkedList<>();
public List<List<Integer>> subsets(int[] nums) {
backtrack(nums,0);
return res;
}
void backtrack(int[] nums, int start){
if (start == nums.length){
res.add(new LinkedList(track));
return;
}
// 将当前树枝放入 list
track.addLast(nums[start]);
// 进入下一步,放入当前树枝+1
backtrack(nums,start+1);
// 等到 if 条件满足,遍历到叶子节点,就会走到这一步,回退一步,
track.removeLast();
// 走当初没有选择的另一种可能,继续递归下去
backtrack(nums,start+1);
}
}
本文标题:回溯算法心得
本文链接:https://www.haomeiwen.com/subject/lkkyydtx.html
网友评论