题目:
解析:
代码:
javaprivate List<List<Integer>> ret; private List<Integer> path; private int n,k; public List<List<Integer>> combine(int _n, int _k) { n = _n; k = _k; path = new ArrayList<>(); ret = new ArrayList<>(); dfs(1); return ret; } private void dfs(int start){ if(path.size() == k){ ret.add(new ArrayList(path)); return; } for(int i = start; i <= n; i++){ path.add(i); dfs(i+1);//剪枝:选过接着往后选 path.remove(path.size()-1);//恢复现场 } }
穷举vs暴搜vs深搜vs回溯vs剪枝系列一>组合
robin_suli2024-12-29 18:49
相关推荐
_深海凉_2 分钟前
LeetCode热题100-单词拆分wearegogog1232 分钟前
基于蚁群算法的无人机三维航路规划(MATLAB实现)旖-旎8 分钟前
递归(快速幂)(5)小江的记录本2 小时前
【分布式】分布式核心组件——分布式ID生成:雪花算法、号段模式、美团Leaf、百度UidGenerator、时钟回拨解决方案leobertlan9 小时前
好玩系列:用20元实现快乐保存器青梅橘子皮9 小时前
C语言---指针的应用以及一些面试题_深海凉_10 小时前
LeetCode热题100-有效的括号被开发耽误的大厨13 小时前
1、==、equals、hashCode底层原理?重写场景?WolfGang00732113 小时前
代码随想录算法训练营 Day38 | 动态规划 part11松☆14 小时前
C++ 算法竞赛题解:P13569 [CCPC 2024 重庆站] osu!mania —— 浮点数精度陷阱与 `eps` 的深度解析
