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

代码运行流程

相关推荐
南宫生27 分钟前
力扣-图论-15【算法学习day.65】
java·学习·算法·leetcode·图论
mit6.82430 分钟前
[数据结构#2] 图(1) | 概念 | 邻接矩阵 | 邻接表 | 模拟
算法·深度优先·图论
Menior_33 分钟前
数据结构—图
数据结构·c++·算法
洛嘚40 分钟前
@FeignClient用于Nacos微服务间的接口调用
java·服务器
Q_192849990640 分钟前
基于Spring Boot的社区药房系统
java·spring boot·后端
lly_csdn1231 小时前
【路径规划】原理及实现
python·算法·路径规划
YGGP1 小时前
【LeetCode】将有序数组转换为二叉搜索树
数据结构·算法·leetcode
小蜗牛慢慢爬行1 小时前
Java8 Stream编码问题
java·开发语言·后端·面试
m0_672449601 小时前
Java前后端分离实现登陆
java·大数据·开发语言
weixin_537590451 小时前
《Java编程入门官方教程》第七章练习答案
java·算法