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();
        }
    }
相关推荐
孙尚香蕉几秒前
Hadoop高可用集群搭建
java·linux·hadoop
廖显东-ShirDon 讲编程11 分钟前
《零基础Go语言算法实战》【题目 1-14】字符串的替换
算法·程序员·go语言·web编程·go web
啊松同学25 分钟前
【Java】设计模式——代理模式
java·后端·设计模式·代理模式
爱上语文26 分钟前
预编译SQL
java·数据库·后端·sql
一决威严-雪雪1 小时前
springBoot整合mongdb
java·spring boot·后端
ZZTC1 小时前
Python贪心
开发语言·python·算法·蓝桥杯
谢栋_1 小时前
设计模式从入门到精通之(四)建造者模式
java·设计模式·建造者模式
HelloZheQ1 小时前
从用户输入 URL 到后端响应的完整流程解析
java
GGBondlctrl1 小时前
【Spring Boot】Spring 事务探秘:核心机制与应用场景解析
java·spring·事务·spring事务·transaction·声明式事务·编程式事务
多多*1 小时前
后端技术选型 sa-token校验学习 下 结合项目学习 前后端登录
java·redis·git·学习·github·intellij-idea·状态模式