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

穷举vs暴搜vs深搜vs回溯vs剪枝专题一>全排列II

2025-07-27 15:36:30
穷举vs暴搜vs深搜vs回溯vs剪枝专题一>全排列II 题目:解析: 这题设计递归函数,主要把看如何剪枝 代码: 代码语言:javascript代码运行次数:0运行复制class Solution { private List<List<Integer>> ret; private List<Integer> path; private

穷举vs暴搜vs深搜vs回溯vs剪枝专题一>全排列II

题目:


解析: 

这题设计递归函数,主要把看如何剪枝 


代码: 

代码语言:javascript代码运行次数:0运行复制
class Solution {
    private List<List<Integer>> ret;
    private List<Integer> path;
    private boolean[] check;
    public List<List<Integer>> permuteUnique(int[] nums) {
        ret = new ArrayList<>();
        path = new ArrayList<>();
        check = new boolean[nums.length];
        Arrays.sort(nums);//

        dfs(nums,0);
        return ret;
    }

    //pos是决策树层数
    private void dfs(int[] nums,int pos){
        if(pos == nums.length){
            ret.add(new ArrayList<>(path));
            return;
        }

        for(int i = 0; i < nums.length; i++){ 
            
            //不合法分支剪枝
            if(check[i] == true || i != 0 && nums[i] == nums[i-1] && check[i-1] == false)
                continue;

            if(check[i] == false){
            path.add(nums[i]);
            check[i] = true;
            dfs(nums,pos+1);

            //恢复现场
            path.remove(path.size()-1);
            check[i] = false;
            }

        }
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-01-1,如有侵权请联系 cloudcommunity@tencent 删除private设计决策树listpath

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

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

相关标签:无
上传时间: 2025-07-22 06:17:07
留言与评论(共有 8 条评论)
本站网友 google关键词分析
26分钟前 发表
int pos){ if(pos == nums.length){ ret.add(new ArrayList<>(path)); return; } for(int i = 0; i < nums.length; i++){ //不合法分支剪枝 if(check[i] == true || i != 0 && nums[i] == nums[i-1] && check[i-1] == false) continue; if(check[i] == false){ path.add(nums[i]); check[i] = true; dfs(nums
本站网友 常州二手房
25分钟前 发表
原始发表:2025-01-1
本站网友 opensubtitles
13分钟前 发表
穷举vs暴搜vs深搜vs回溯vs剪枝专题一>全排列II 题目:解析: 这题设计递归函数
本站网友 烟大海底隧道
11分钟前 发表
穷举vs暴搜vs深搜vs回溯vs剪枝专题一>全排列II 题目:解析: 这题设计递归函数
本站网友 雪是怎样形成的
18分钟前 发表
0); return ret; } //pos是决策树层数 private void dfs(int[] nums
本站网友 袁东
0秒前 发表
int pos){ if(pos == nums.length){ ret.add(new ArrayList<>(path)); return; } for(int i = 0; i < nums.length; i++){ //不合法分支剪枝 if(check[i] == true || i != 0 && nums[i] == nums[i-1] && check[i-1] == false) continue; if(check[i] == false){ path.add(nums[i]); check[i] = true; dfs(nums
本站网友 采蝶轩月饼
9分钟前 发表
pos+1); //恢复现场 path.remove(path.size()-1); check[i] = false; } } } }本文参与 腾讯云自媒体同步曝光计划