回溯法2

发布于 2023-12-30  351 次阅读


回溯法的一个例子

题目是用一个List存另一个List的所有子集。先码一下:

class Solution {
    List<Integer> t = new ArrayList<Integer>();
    List<List<Integer>> ans = new ArrayList<List<Integer>>();

    public List<List<Integer>> subsets(int[] nums) {
        dfs(0, nums);
        return ans;
    }

    public void dfs(int cur, int[] nums) {
        if (cur == nums.length) {
            ans.add(new ArrayList<Integer>(t));
            return;
        }
        t.add(nums[cur]);
        dfs(cur + 1, nums);
        t.remove(t.size() - 1);
        dfs(cur + 1, nums);
    }
}
  • alipay_img
  • wechat_img
我是小明,喜欢数学和编程
最后更新于 2023-12-30