LeetCode:77. 组合

跟着carl学算法,本系列博客仅做个人记录,建议大家都去看carl本人的博客,写的真的很好的!
代码随想录
LeetCode:77. 组合

给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。

你可以按 任何顺序 返回答案。

示例 1:

输入:n = 4, k = 2

输出:

\[2,4\], \[3,4\], \[2,3\], \[1,2\], \[1,3\], \[1,4\],

示例 2:

输入:n = 1, k = 1

输出:[[1]]

java 复制代码
	public List<List<Integer>> combine(int n, int k) {
        List<List<Integer>> res = new ArrayList<>();
        backtracking(n, k, 1, new ArrayList<>(), res);
        return res;
    }

    private void backtracking(int n, int k, int startIndex, List<Integer> path, List<List<Integer>> res) {
        if (path.size() == k) {
            // res.add(path);
            // 这里应该添加一个新的list而不是直接添加path!
            res.add(new ArrayList<>(path));
            return;
        }
        for (int i = startIndex; i <= (n - (k - path.size()) + 1); i++) {
            path.add(i);
            backtracking(n, k, i + 1, path, res);
            path.removeLast();
        }
    }
相关推荐
叫我阿柒啊3 分钟前
Java全栈开发面试实战:从基础到微服务的深度探索
java·spring boot·redis·微服务·vue3·全栈开发·面试技巧
ashane13146 分钟前
Springboot 集成 TraceID
java·spring boot·spring
SunnyDays10119 分钟前
Java PPT转多种图片格式:打造高质量的文档转换服务
java·ppt转图片·ppt转png·ppt转jpg·ppt转svg·ppt转tiff
David爱编程14 分钟前
多核 CPU 下的缓存一致性问题:隐藏的性能陷阱与解决方案
java·后端
小O的算法实验室34 分钟前
2025年KBS SCI1区TOP,矩阵差分进化算法+移动网络视觉覆盖无人机轨迹优化,深度解析+性能实测
算法·论文复现·智能算法改进
spencer_tseng34 分钟前
Apache Maven 3.1.1 (eclipse luna)
java·maven·apache
艾莉丝努力练剑2 小时前
【C语言16天强化训练】从基础入门到进阶:Day 11
c语言·学习·算法
2401_831501732 小时前
Linux之Docker虚拟化技术(一)
java·linux·docker
TPBoreas2 小时前
架构设计模式七大原则
java·开发语言
自由的疯2 小时前
Java 实现TXT文件导入功能
java·后端·架构