穷举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);//恢复现场
        }
    }
相关推荐
czxyvX15 分钟前
06-排序
c语言·数据结构·算法·排序算法
2301_8203010236 分钟前
【机器学习】支持向量机
算法·机器学习·支持向量机
拾忆-eleven42 分钟前
NLP学习路线图(二十):FastText
人工智能·算法·机器学习·nlp
你真会1 小时前
【数据结构知识分享】顺序表详解
数据结构·学习·算法
@蓝莓果粒茶2 小时前
LeetCode第245题_最短单词距离III
c语言·c++·笔记·学习·算法·leetcode·c#
闻闻不会编程2 小时前
704. 二分查找 (力扣)
数据结构·算法·leetcode
AndrewHZ2 小时前
【图像处理基石】立体匹配的经典算法有哪些?
图像处理·算法·计算机视觉·滤波·模式识别·立体匹配
AndrewHZ2 小时前
【图像处理入门】4. 图像增强技术——对比度与亮度的魔法调节
图像处理·算法·计算机视觉·几何变换·图像增强·模式识别
不二狗3 小时前
每日算法 -【Swift 算法】查找字符串数组中的最长公共前缀
开发语言·算法·swift
不二狗3 小时前
每日算法 -【Swift 算法】将整数转换为罗马数字
开发语言·算法·swift