LeetCode第77题组合

继续打卡算法题,今天学习的是LeetCode第77题组合,这道题目是道中等题。算法题的一些解题思路和技巧真的非常巧妙,每天看一看算法题和解题思路,我相信对我们的编码思维和编码能力有一些提升。

分析一波题目

哈哈哈,之前做过组合相关的题目,这个题目就非常简单了,还是一样的套路,我们只要把组合想成一棵树遍历就可以了。

比如 n=4 k=2。

本题解题技巧

1、将组合问题转换为遍历树的问题,组合问题都可以将其先转换成树形结构,再看是否可以求解。

编码解决

java 复制代码
class Solution {
    public List<List<Integer>> combine(int n, int k) {

        List<List<Integer>> result = new ArrayList<>();

        List<Integer> subResult= new ArrayList<>();
        getSubResult(result, subResult, 0,n, k);
        return result;
    }

    public void getSubResult(List<List<Integer>> result, List<Integer> subResult,int start,int n, int k) {
        //满足了组合条件
        if(subResult.size() == k) {
            result.add(subResult);
            return;
        }
        
        for(int i=start; i<n; i++) {
            List<Integer> tempSubResult= new ArrayList<>();
            tempSubResult.addAll(subResult);
            tempSubResult.add(i+1);
            //递归
            getSubResult(result, tempSubResult, i+1,n, k);
        }    
    }
}

总结

1、记住组合问题都可以先转换成树,脑袋里可以把组合组成的过程,转换成一棵树遍历过程。

相关推荐
Moment7 分钟前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
孞㐑¥34 分钟前
算法——BFS
开发语言·c++·经验分享·笔记·算法
月挽清风39 分钟前
代码随想录第十五天
数据结构·算法·leetcode
XX風1 小时前
8.1 PFH&&FPFH
图像处理·算法
Cobyte1 小时前
AI全栈实战:使用 Python+LangChain+Vue3 构建一个 LLM 聊天应用
前端·后端·aigc
NEXT061 小时前
前端算法:从 O(n²) 到 O(n),列表转树的极致优化
前端·数据结构·算法
代码游侠2 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
想进个大厂2 小时前
代码随想录day37动态规划part05
算法
sali-tec2 小时前
C# 基于OpenCv的视觉工作流-章22-Harris角点
图像处理·人工智能·opencv·算法·计算机视觉
程序员侠客行2 小时前
Mybatis连接池实现及池化模式
java·后端·架构·mybatis