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

代码运行流程

相关推荐
2501_94111194几秒前
C++中的适配器模式变体
开发语言·c++·算法
明洞日记1 分钟前
【设计模式手册008】适配器模式 - 让不兼容的接口协同工作
java·设计模式·适配器模式
zzz海羊2 分钟前
VSCode配置java中的lombok
java·开发语言·vscode
A-code7 分钟前
Git 多模块项目管理
java·开发语言
TDengine (老段)9 分钟前
TDengine 字符串函数 Replace 用户手册
java·大数据·数据库·物联网·时序数据库·tdengine·涛思数据
java_logo16 分钟前
BUSYBOX Docker 容器化部署指南
java·运维·python·nginx·docker·容器·运维开发
旋转的马铃薯干22 分钟前
bulk RNA-Seq(7)差异表达分析可视化
算法
旋转的马铃薯干24 分钟前
bulk RNA-Seq(8)富集分析
算法
2501_9411117725 分钟前
C++代码移植性设计
开发语言·c++·算法
致Great30 分钟前
RAG在医疗领域的批判性评估、推荐算法等最新研究进展
算法·机器学习·推荐算法