题目:
解析:
这题设计递归函数,主要把看如何剪枝
代码:
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
相关推荐
Dola_Zou7 小时前
工厂智能排产软件算法保护与按产线计费实战啦啦啦啦啦zzzz9 小时前
Logger的组装(c++20)尾善爱看海10 小时前
前端算法与手写题集程序员阿鹏10 小时前
为什么MySQL InnoDB选择B+树?AI 思录11 小时前
Prompt 事故档案(八):日常表达被标为“待校准”,AI 的爹味语法从哪里来月光船幽幽11 小时前
跨范式映射的稳定接口设计2601_9657422212 小时前
全媒体运营与短视频代运营,两者有什么区别?wordbaby13 小时前
混合检索:两全其美的艺术彧azz14 小时前
数据结构:关于图的学习热心网友俣先生14 小时前
A题-药材的烘干问题-题意逐句翻译
