码随想录算法训练营第二十四天| 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);
        }
    }
}

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

相关推荐
生活很暖很治愈3 分钟前
Linux——孤儿进程&进程调度&大O(1)调度
linux·服务器·ubuntu
HalvmånEver20 分钟前
Linux:线程同步
linux·运维·服务器·线程·同步
Zach_yuan22 分钟前
自定义协议:实现网络计算器
linux·服务器·开发语言·网络
岁杪杪25 分钟前
关于运维:LINUX 零基础
运维·服务器·php
CoderCodingNo37 分钟前
【GESP】C++五级练习题 luogu-P1865 A % B Problem
开发语言·c++·算法
wdfk_prog38 分钟前
[Linux]学习笔记系列 -- [drivers][I2C]I2C
linux·笔记·学习
大闲在人1 小时前
7. 供应链与制造过程术语:“周期时间”
算法·供应链管理·智能制造·工业工程
VekiSon1 小时前
Linux内核驱动——杂项设备驱动与内核模块编译
linux·c语言·arm开发·嵌入式硬件
tianyuanwo1 小时前
企业级NTP客户端配置指南:基于内部NTP服务器的实践
运维·服务器·ntp客户端
小熳芋1 小时前
443. 压缩字符串-python-双指针
算法