题目:
解析:
这题设计递归函数,主要把看如何剪枝
代码:
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
相关推荐
ZhengEnCi3 小时前
Agent 架构怎么选:从单 Agent 到多 Agent 编排的选型决策指南秋天的怀念_David4 小时前
第二十二夜 · 数字迷雾Pniubi4 小时前
力扣283移动零(双指针法)hhb_6184 小时前
大模型落地三重优化实战云和数据.ChenGuang4 小时前
光哥说Python RAG 系统需要哪些评估指标:从检索到生成的全链路评测指南2601_970703836 小时前
工业除湿机租赁:把一份租金合同拆开看心中有你02146 小时前
Java实现Dijkstra最短路径算法(邻接表 + 优先队列)ZhengEnCi7 小时前
同样的模型,为什么本地和云 API 差别那么大:量化精度、聊天模板与采样参数的三大元凶Flynn Liang7 小时前
RAG 答非所问/幻觉怎么破?Spring AI QuestionAnswerAdvisor 召回优化实战(TopK/重排/混合检索)liminla!7 小时前
SQL 从入门到进阶:语法速查与实战练习(完整优化版)
