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

代码运行流程

相关推荐
27669582922 分钟前
闪购商家端 mtgsig
java·python·c#·node·c·mtgsig·mtgsig1.2
不能只会打代码2 分钟前
力扣--3578. 统计极差最大为 K 的分割方式数(Java实现,代码注释及题目分析讲解)
算法·leetcode·动态规划·滑动窗口
小尧嵌入式4 分钟前
QT软件开发知识流程及秒表计时器开发
开发语言·c++·qt·算法
JIngJaneIL8 分钟前
基于Java在线考试管理系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot
雨落秋垣9 分钟前
SpringCache 缓存:注意事项、问题解决与优化策略
java·spring·缓存
计算机毕设指导611 分钟前
基于微信小程序的篮球场馆预订系统【源码文末联系】
java·spring boot·mysql·微信小程序·小程序·tomcat·maven
JIngJaneIL12 分钟前
基于Java音乐管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
毕设源码-朱学姐14 分钟前
【开题答辩全过程】以 驾校信息管理系统为例,包含答辩的问题和答案
java·spring boot
Hello.Reader16 分钟前
Flink SQL 窗口表值函数TUMBLE / HOP / CUMULATE / SESSION
java·sql·flink
踢球的打工仔18 分钟前
前端html(3)
前端·算法·html