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

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

相关推荐
aigcapi2 小时前
RAG 系统的黑盒测试:从算法对齐视角解析 GEO 优化的技术指标体系
大数据·人工智能·算法
柯慕灵3 小时前
7大推荐系统/算法框架对比
算法·推荐算法
sorry#3 小时前
top简单使用
linux·运维
adam-liu3 小时前
Fun Audio Chat 论文+项目调研
算法·语音端到端·fun-audio-chat
广东大榕树信息科技有限公司3 小时前
如何通过动环监控系统提升机房运行安全与效率?
运维·网络·物联网·国产动环监控系统·动环监控系统
栀秋6663 小时前
你会先找行还是直接拍平?两种二分策略你Pick哪个?
前端·javascript·算法
半壶清水4 小时前
开源免费的在线考试系统online-exam-system部署方法
运维·ubuntu·docker·开源
如果你想拥有什么先让自己配得上拥有4 小时前
数学思想和数学思维分别都有什么?
线性代数·算法·机器学习
QQ__17646198244 小时前
Ubuntu系统创建新用户与删除用户
linux·运维·服务器
长安er4 小时前
LeetCode136/169/75/31/287 算法技巧题核心笔记
数据结构·算法·leetcode·链表·双指针