欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > 穷举vs暴搜vs深搜vs回溯vs剪枝专题一>全排列II

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

2025/5/18 21:53:15 来源:https://blog.csdn.net/robin_suli/article/details/144597107  浏览:    关键词:穷举vs暴搜vs深搜vs回溯vs剪枝专题一>全排列II

题目:

 


解析: 

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

 


代码: 

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;}}}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词