题目:
解析:
这题设计递归函数,主要把看如何剪枝
代码:
javaclass 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; } } } }
穷举vs暴搜vs深搜vs回溯vs剪枝专题一>全排列II
robin_suli2024-12-24 15:27
相关推荐
YuK.W7 小时前
Leetcode100: 70.爬楼梯、118.杨辉三角、198.打家劫舍随意起个昵称7 小时前
状压dp-基础题目2([USACO12MAR] Cows in a Skyscraper G)Jerry8 小时前
LeetCode 1002. 查找共用字符无限的鲜花8 小时前
协程本质是函数加状态机——零基础深入浅出 C++20 协程旖-旎9 小时前
《LeetCode 64 最小路径和 || LeetCode 174 地下城游戏》森林古猿19 小时前
再论斜率优化万法若空9 小时前
【数学-简单数论】同余中的逆凯瑟琳.奥古斯特10 小时前
力扣1009补码解法C++实现KaMeidebaby10 小时前
卡梅德生物技术快报|蛋白的叠氮基修饰:实操解析:核酸模板耦合蛋白的叠氮基修饰实现靶蛋白定点共价标记通信仿真爱好者11 小时前
第【60期】--大规模MIMO系统信号检测算法误码率比较 --matlab完整代码+参考文章
