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

代码运行流程

相关推荐
StarPrayers.6 分钟前
旅行商问题(TSP)(2)(heuristics.py)(TSP 的两种贪心启发式算法实现)
前端·人工智能·python·算法·pycharm·启发式算法
微露清风9 分钟前
系统性学习C++-第五讲-内存管理
java·c++·学习
计算机毕业设计木哥13 分钟前
计算机毕业设计选题推荐:基于SpringBoot和Vue的快递物流仓库管理系统【源码+文档+调试】
java·vue.js·spring boot·后端·课程设计
爱吃橘的橘猫14 分钟前
嵌入式系统与嵌入式 C 语言(2)
c语言·算法·嵌入式
2351617 分钟前
【LeetCode】146. LRU 缓存
java·后端·算法·leetcode·链表·缓存·职场和发展
聪明的笨猪猪21 分钟前
Java Redis “运维”面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试
FIavor.38 分钟前
怎么办这是Apifox里执行http://localhost:9002/goods/getByUserName?name=“张三“为什么我改了还是500?
java·网络·网络协议·http
编程饭碗39 分钟前
【Java集合】
java
岁岁岁平安40 分钟前
Java的双重检查锁机制(DCL)与懒加载的单例模式
java·单例模式·synchronized·
Jabes.yang1 小时前
Java面试场景:从Spring Boot到Kubernetes的技术问答
java· 面试· spring boot· 微服务· kubernetes· 技术栈· redis