码随想录算法训练营第二十四天| 77. 组合

77. 组合 - 力扣(LeetCode)

java 复制代码
class Solution {
    ArrayList<Integer> path = new ArrayList<>();
    ArrayList<List<Integer>> result = new ArrayList<>();

    public List<List<Integer>> combine(int n, int k) {
        if(n < k){
            return new ArrayList<>();
        }
        
        doCombine(n,k,1);
        
        return result;
    }

    private void doCombine(int n,int k,int startPos){
        if(path.size() == k){
            result.add(new ArrayList<>(path));
            return;
        }

        for(int i=startPos;i<=n && path.size() + n-i+1 >= k;i++){
            path.add(i);
            doCombine(n,k,i+1);
            path.remove(path.size()-1);
        }
    }
}

使用面向接口 和 不使用面向接口

相关推荐
折枝寄北2 分钟前
从零开始 | C语言基础刷题DAY1
c语言·开发语言·算法
Albert XUU20 分钟前
nettrace rtt分析器
linux·运维·网络·网络协议·网络安全·腾讯云·运维开发
.ccl31 分钟前
蓝桥杯省赛真题C++B组2024-握手问题
c++·算法·蓝桥杯
做我想做43 分钟前
虚拟机 CentOS 9 网络配置
linux·网络·centos
arong_xu1 小时前
C++20 新特性总结
算法·c++20
小小的木头人1 小时前
CentOS 8 更换软件源
linux·运维·centos
hrrrrb1 小时前
【C语言】指针篇
c语言·数据结构·算法
BetterJason1 小时前
ubuntu20不同版本的cudnn切换
linux
神里流~霜灭1 小时前
下降路径最⼩和(medium)
数据结构·c++·算法·链表·贪心算法·动态规划
珹洺1 小时前
数据库系统概论(三)数据库系统的三级模式结构
java·运维·服务器·数据库·oracle