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

代码运行流程

相关推荐
CoderCodingNo1 分钟前
【GESP】C++五级真题(贪心思想考点) luogu-P11960 [GESP202503 五级] 平均分配
开发语言·c++·算法
Caarlossss7 分钟前
mybatis
java·数据库·tomcat·maven·mybatis·mybatis-spring
喵手9 分钟前
项目实战案例:从设计到部署!
java·部署·项目实战·设计
源码获取_wx:Fegn089513 分钟前
基于springboot + vue小区人脸识别门禁系统
java·开发语言·vue.js·spring boot·后端·spring
youngee1118 分钟前
hot100-61电话号码的字母组合
java·数据结构·leetcode
POLITE323 分钟前
Leetcode 76.最小覆盖子串 JavaScript (Day 6)
javascript·算法·leetcode
寂寞旅行33 分钟前
java敏感词过滤(sensitive-word)
java·开发语言·word
90后小陈老师34 分钟前
Java项目接入AI大模型的四种方式
java·开发语言·人工智能
hunjinYang40 分钟前
使用嵌入式 Tomcat 创建Java Web应用程序
java·tomcat
Godson_beginner1 小时前
Elasticsearch 学习笔记
java·大数据·elasticsearch·搜索引擎