力扣 中等 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);
        }
    }
}

代码运行流程

相关推荐
你撅嘴真丑4 分钟前
第八章 - 贪心法
开发语言·c++·算法
VT.馒头9 分钟前
【力扣】2625. 扁平化嵌套数组
前端·javascript·算法·leetcode·职场和发展·typescript
wanghu202410 分钟前
AT_abc443_C~E题题解
c语言·算法
思想在飞肢体在追11 分钟前
Springboot项目配置Nacos
java·spring boot·后端·nacos
cyforkk12 分钟前
09、Java 基础硬核复习:异常处理(容错机制)的核心逻辑与面试考点
java·数据库·面试
u01092727117 分钟前
模板元编程调试方法
开发语言·c++·算法
??(lxy)33 分钟前
java高性能无锁队列——MpscLinkedQueue
java·开发语言
数研小生38 分钟前
Full Analysis of Taobao Item Detail API taobao.item.get
java·服务器·前端
2401_8384725141 分钟前
C++图形编程(OpenGL)
开发语言·c++·算法
-dzk-1 小时前
【代码随想录】LC 203.移除链表元素
c语言·数据结构·c++·算法·链表