力扣 中等 77.组合

文章目录

题目介绍

解法

代码如下

java 复制代码
class Solution {
	//定义成员变量
    List<List<Integer>> result= new ArrayList<>();
    List<Integer> path = new ArrayList<>();
    public List<List<Integer>> combine(int n, int k) {
        dfs(n,k,1);
        return result;
    }
    //startIndex 参数用于控制递归的起点。
    //遍历从 startIndex 到 n 的每个数字,确保组合中没有重复的元素。
    public void dfs(int n,int k,int startIndex){
        if (path.size() == k){
            //创建一个新的列表并将path 列表的内容复制到新创建的列表中
            //目的是为了避免后续对 path 列表的修改影响到 result 列表中已有的元素
            result.add(new ArrayList<>(path));
            return;
        }
        for (int i =startIndex;i<=n;i++){
            path.add(i);
            dfs(n,k,i+1);
            path.remove(path.size() - 1);
        }
    }
}

代码运行流程

相关推荐
第二只羽毛20 分钟前
C++ 高性能编程要点
大数据·开发语言·c++·算法
geekmice26 分钟前
实现一个功能:springboot项目启动将controller地址拼接打印到txt文件
java·spring boot·后端
老华带你飞30 分钟前
旅游|基于Java旅游信息系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot·旅游
CQ_YM1 小时前
数据结构之栈
数据结构·算法·
小石头 100861 小时前
【JavaEE】进程和线程的区别
java·java-ee
爱学习的梵高先生1 小时前
C++:基础知识
开发语言·c++·算法
oioihoii1 小时前
C++对象生命周期与析构顺序深度解析
java·开发语言·c++
xlq223221 小时前
24.map set(下)
数据结构·c++·算法
BBB努力学习程序设计1 小时前
Java枚举(Enum):定义固定值的"类型安全"利器
java