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

代码运行流程

相关推荐
北京地铁1号线3 分钟前
数据结构:堆
java·数据结构·算法
百***864613 分钟前
Spring Boot应用关闭分析
java·spring boot·后端
tanxiaomi13 分钟前
Spring、Spring MVC 和 Spring Boot ,mybatis 相关面试题
java·开发语言·mybatis
弥巷16 分钟前
【Android】常见滑动冲突场景及解决方案
android·java
散峰而望22 分钟前
C++数组(一)(算法竞赛)
c语言·开发语言·c++·算法·github
间彧29 分钟前
GraalVM 深度解析:下一代 Java 技术平台
java
自然常数e1 小时前
深入理解指针(1)
c语言·算法·visual studio
合作小小程序员小小店1 小时前
网页开发,在线%旧版本旅游管理%系统,基于eclipse,html,css,jquery,servlet,jsp,mysql数据库
java·数据库·servlet·eclipse·jdk·旅游·jsp
WWZZ20251 小时前
快速上手大模型:深度学习13(文本预处理、语言模型、RNN、GRU、LSTM、seq2seq)
人工智能·深度学习·算法·语言模型·自然语言处理·大模型·具身智能
20岁30年经验的码农1 小时前
Java Sentinel流量控制与熔断降级框架详解
java·开发语言·sentinel