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

代码运行流程

相关推荐
普通网友3 分钟前
PictureSelector 相册全白不显示问题
java·开发语言
独自破碎E8 分钟前
kafka中的时间轮实现
java·开发语言
程序员阿鹏12 分钟前
如何保证写入Redis的数据不重复
java·开发语言·数据结构·数据库·redis·缓存
uup18 分钟前
Future.get () 的潜在陷阱
java
狂奔小菜鸡22 分钟前
Day36 | Java中的线程池技术
java·后端·java ee
明朝百晓生27 分钟前
强化学习[chapter8] [page17] Value Function Methods
人工智能·算法
sheji341629 分钟前
【开题答辩全过程】以大学校园点餐系统为例,包含答辩的问题和答案
java
POLITE339 分钟前
Leetcode 56.合并区间 JavaScript (Day 6)
算法·leetcode·职场和发展
苏婳66642 分钟前
Java---SSH(MVC)面试题
java·ssh·mvc
叶 落1 小时前
[Maven 基础课程]13_Maven 私服的使用
java·maven