您现在的位置是:首页 > 编程 > 

穷举vs暴搜vs深搜vs回溯vs剪枝专题一>子集

2025-07-23 17:38:44
穷举vs暴搜vs深搜vs回溯vs剪枝专题一>子集 题目: 两个方法本质就是决策树的画法不同方法一解析: 代码: 代码语言:javascript代码运行次数:0运行复制class Solution { private List<List<Integer>> ret;//返回结果 private List<Integer> path;//记录路径,注

穷举vs暴搜vs深搜vs回溯vs剪枝专题一>子集

题目: 


两个方法本质就是决策树的画法不同

方法一解析: 


代码: 

代码语言:javascript代码运行次数:0运行复制
class Solution {
    private List<List<Integer>> ret;//返回结果
    private List<Integer> path;//记录路径,注意返回现场
    public List<List<Integer>> subsets(int[] nums) {
        path = new ArrayList<>();
        ret = new ArrayList<>();
        dfs(nums,0);
        return ret;
    }


    //i表示选择到了那一层
    private void dfs(int[] nums, int indx){
        //递归出口
        if(indx == nums.length){
            ret.add(new ArrayList<>(path));
            return;
        }

        //选某个元素
        path.add(nums[indx]);
        dfs(nums,indx+1);
        path.remove(path.size()-1);//回复现场


        //不选某个元素
        dfs(nums,indx+1);
    }
}

方法二解析:  


代码: 

代码语言:javascript代码运行次数:0运行复制
 private List<List<Integer>> ret;//返回结果
    private List<Integer> path;//记录路径
    public List<List<Integer>> subsets(int[] nums) {
        path = new ArrayList<>();
        ret = new ArrayList<>();
        dfs(nums,0);
        return ret;
    }

    private void dfs(int[] nums, int pos){
        ret.add(new ArrayList<>(path));
        for(int i = pos; i < nums.length; i++){
            path.add(nums[i]);
            //每一层只能往选过的元素,再往选
            dfs(nums,i+1);
            path.remove(path.size()-1);//回复现场
        }
    }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2024-12-15,如有侵权请联系 cloudcommunity@tencent 删除intlistpath递归决策树

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1183781.html

相关标签:无
上传时间: 2025-07-22 06:23:21
留言与评论(共有 7 条评论)
本站网友 私塾在线
21分钟前 发表
0); return ret; } private void dfs(int[] nums
本站网友 proven
7分钟前 发表
原始发表:2024-12-15
本站网友 audiodg
24分钟前 发表
0); return ret; } //i表示选择到了那一层 private void dfs(int[] nums
本站网友 赛葵
16分钟前 发表
如有侵权请联系 cloudcommunity@tencent 删除前往查看intlistpath递归决策树
本站网友 孕妇不能吃的十大水果
6分钟前 发表
i+1); path.remove(path.size()-1);//回复现场 } }本文参与 腾讯云自媒体同步曝光计划
本站网友 湖南省军区医院
15分钟前 发表
如有侵权请联系 cloudcommunity@tencent 删除前往查看intlistpath递归决策树