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

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

相关推荐
NEXT065 分钟前
前端算法:从 O(n²) 到 O(n),列表转树的极致优化
前端·数据结构·算法
Fcy64815 分钟前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满17 分钟前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠37 分钟前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
Gary Studio38 分钟前
rk芯片驱动编写
linux·学习
mango_mangojuice39 分钟前
Linux学习笔记(make/Makefile)1.23
java·linux·前端·笔记·学习
想进个大厂41 分钟前
代码随想录day37动态规划part05
算法
sali-tec42 分钟前
C# 基于OpenCv的视觉工作流-章22-Harris角点
图像处理·人工智能·opencv·算法·计算机视觉
Harvey9031 小时前
通过 Helm 部署 Nginx 应用的完整标准化步骤
linux·运维·nginx·k8s
子春一1 小时前
Flutter for OpenHarmony:构建一个 Flutter 四色猜谜游戏,深入解析密码逻辑、反馈算法与经典益智游戏重构
算法·flutter·游戏