文章目录

  • 77. 组合
  • 39. 组合总和
  • 40. 组合总和 II
  • 216. 组合总和 III
  • 377. 组合总和 Ⅳ

组合的题目的重点就是顺序问题,他不像排列,不同顺序代表一个排列,所以组合的遍历。当然最后一题是题目自己定义组合的,所以会有所不同。

77. 组合

选择1~n中的k个数,构造出所有组合,其中每个数不可重复使用(隐含条件)

力扣传送门

思路:DFS,回溯

  1. 参数说明:
    pre,用于记录上一个数的下标,注意组合跟排列不一样,组合跟顺序没关系,也就是12和21是一样的,所以需要避免重复组合。==具体做法就是保证组合中元素的下标是有序的就行,也就是当前遍历到的元素的下标要大于上一个,也就是pre<i。需要注意的是,这里的pre初始化是0,而不是-1,因为给定元素是1-n,直接用1-n的下标对应即可。
    layer,代表递归层数,或者说第几个组合数,k代表一个组合有k个数,当layer==k +1时,说明已经找到k个数,直接保存组合结果,无需再进行递归了。
  2. 剪枝条件: k-layer > n-i
    k-layer代表组合还差几个数,n-i代表还剩几个数可选择。如果组合需要的个数超过可选择的,说明可选择数不够,无法凑成组合,直接return。例如12345,k=4,layer=1,i=4,假如选择的第一个组合数是3,还差3个,但可用的只有4和5两个数,所以直接返回

组合系列--有排列就有组合相关推荐

  1. 排列公式和组合公式_排列与组合:排列公式与组合公式之间有什么区别?

    排列公式和组合公式 Here's the short version. 这是简短的版本. Let's take ringing bells in a church as an example. 让我们 ...

  2. 围成一圈的排列组合问题_行测技巧:排列组合之“环形排列”问题

    原标题:行测技巧:排列组合之"环形排列"问题 在公考学习备考中排列组合一直是大家比较头疼的题目,很多同学在高中时就对这种题目望而却步,其实排列组合题目虽然比较难,但是这类题目却可以 ...

  3. 软考高级信息系统项目管理师系列之四十一:项目组合管理

    软考高级信息系统项目管理师系列之四十一:项目组合管理 一.项目组合管理内容 二.项目组合管理基础概述 1.项目组合定义及相关知识图 2.项目组合.项目集和项目之间的关系 3.项目组合模块具备的特征 三 ...

  4. 组合 公式 计算机,排列与组合的概念与计算公式

    排列与组合的概念与公式 1.排列及计算公式 从n个不同元素中,任取m(m≤n)个元素按照一定的顺序排成一列,叫做从n个不同元素中取出m个元素的一个排列:从n个不同元素中取出m(m≤n)个元素的所有排列 ...

  5. Leetcode 组合总和 与 排列组合相关问题

    Leetcode 组合总和 与 全排列相关问题 组合总和 题目链接: Leetcode 39.组合总和 题目描述 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 c ...

  6. 【组合数学】组合恒等式 ( 变下项求和 3 组合恒等式 | 变下项求和 4 组合恒等式 | 二项式定理 + 求导 证明组合恒等式 | 使用已知组合恒等式证明组合恒等式 )

    文章目录 一.组合恒等式 ( 变下项求和 ) 变系数求和 1 二.组合恒等式 ( 变下项求和 ) 变系数求和 1 证明 ( 二项式定理 + 求导 ) 三.组合恒等式 ( 变下项求和 ) 变系数求和 2 ...

  7. 【组合数学】组合恒等式 ( 递推 组合恒等式 | 变下项求和 组合恒等式 简单和 | 变下项求和 组合恒等式 交错和 )

    文章目录 一.组合恒等式 ( 递推式 ) 二.组合恒等式 ( 变下项求和 ) 简单和 二.组合恒等式 ( 变下项求和 ) 交错和 一.组合恒等式 ( 递推式 ) 组合恒等式 ( 递推式 ) : 1 . ...

  8. java 中组合与复用_可复用性和组合

    可复用性和组合就是将组件可复用性的使用和组合这个组件. 可复用性和组合 我们可以新建一个index.html和index.js,在index.html中引入index.js,然后在index.html ...

  9. 组合模式_设计模式结构性:组合模式(CompositePattern)

    组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象.组合模式依据树形结构来组合对象,用来表示部分以及整体层次.这种类型的设计模式属于结构型模式, ...

最新文章

  1. Dockerfile ENV和ARG的区别与应用
  2. 人工智能算法的可解释性方法研究
  3. Codeforces Round #540 (Div. 3) A,B,C,D2,E,F1
  4. python线程卡死问题解决_python while True造成未响应或卡顿的解决方法
  5. 为什么美团打车、滴滴外卖必败?君智谢伟山揭秘了背后的竞争战略逻辑
  6. 【树莓派】修改树莓派盒子MAC地址
  7. 投稿指南 | 云计算领域最前沿资讯、技术,期待您的专业解读!
  8. -1在numpy重塑中是什么意思?
  9. 网络规划设计师教程知识点精讲之计算机网络分类
  10. 实战python网络爬虫黄永祥_《实战Python网络爬虫》- 感想
  11. U盘分区以及启动U盘的制作
  12. Kata Container 2.x 和 3.0 安装,内核编译,镜像制作
  13. 《一代大商孟洛川》经典台词
  14. 《密码法》之商用密码应用安全性评估----六问
  15. 知乎关键词排名,知乎关键词排名置顶第一的方法
  16. 已经建立的TCP,收到SYN会发生什么?
  17. Android避坑指南,Gson与Kotlin碰撞出一个不安全的操作
  18. Neo4j Desktop版本的安装学习
  19. 【从零开始学Skynet】实战篇《球球大作战》(一):功能设计
  20. English语法_不定式 - 常用句型

热门文章

  1. [博创智联]创新创客智能硬件平台——温湿度传感器
  2. Unity优化方面的一些小总结
  3. ostream这是啥玩意儿
  4. 干货集锦:Qlik中文教程/行业案例/demo演示等全部打包给您!
  5. 冲压过程中,冲裁力的变化过程
  6. 人生,只有不停的学习,才能走的更远!
  7. C语言每日一练——数字组合
  8. VM虚拟机安装ROOT,GEANT4,Python,jupyter notebook
  9. 实验01:吃鸡蛋问题
  10. 原乡打谷节|十一黄金周,来原乡赏“刀山火海”,享丰收喜悦