穷举vs暴搜vs深搜vs回溯vs剪枝系列一>组合

题目:


解析:


代码:

java 复制代码
 private 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);//恢复现场
        }
    }
相关推荐
X journey9 小时前
机器学习进阶(13):支持向量机SVM
算法·机器学习·支持向量机
洛水水9 小时前
【力扣100题】30.二叉树的直径
算法·leetcode·职场和发展
gihigo199810 小时前
Bezier曲线曲面生成算法
算法
平行侠11 小时前
024多精度大整数 - 突破硬件精度限制的任意精度运算
数据结构·算法
IronMurphy11 小时前
【算法四十五】139. 单词拆分
算法
洛水水12 小时前
【力扣100题】32.将有序数组转换为二叉搜索树
数据结构·算法·leetcode
如竟没有火炬12 小时前
用队列实现栈
开发语言·数据结构·python·算法·leetcode·深度优先
云栖梦泽在13 小时前
AI安全入门:AI模型泄露的风险与防护措施
人工智能·算法·动态规划
水木流年追梦13 小时前
大模型入门-应用篇3-Agent智能体
开发语言·python·算法·leetcode·正则表达式
洛水水14 小时前
【力扣100题】31.二叉树的层序遍历
算法·leetcode·职场和发展