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

代码运行流程

相关推荐
厦门德仔2 分钟前
【WPF】WPF(样式)
android·java·wpf
大春儿的试验田3 分钟前
高并发收藏功能设计:Redis异步同步与定时补偿机制详解
java·数据库·redis·学习·缓存
Gappsong8745 分钟前
【Linux学习】Linux安装并配置Redis
java·linux·运维·网络安全
hqxstudying10 分钟前
Redis为什么是单线程
java·redis
RainbowSea21 分钟前
NVM 切换 Node 版本工具的超详细安装说明
java·前端
逆风局?22 分钟前
Maven高级——分模块设计与开发
java·maven
周某某~24 分钟前
maven详解
java·maven
读书点滴26 分钟前
笨方法学python -练习14
java·前端·python
lingRJ77727 分钟前
微服务架构下的抉择:Consul vs. Eureka,服务发现该如何选型?
java·eureka·springcloud·consul·backend·microservices·servicediscovery
RainbowSea27 分钟前
问题:后端由于字符内容过长,前端展示精度丢失修复
java·spring boot·后端