组合系列--有排列就有组合
文章目录
- 77. 组合
- 39. 组合总和
- 40. 组合总和 II
- 216. 组合总和 III
- 377. 组合总和 Ⅳ
组合的题目的重点就是顺序问题,他不像排列,不同顺序代表一个排列,所以组合的遍历。当然最后一题是题目自己定义组合的,所以会有所不同。
77. 组合
选择1~n中的k个数,构造出所有组合,其中每个数不可重复使用(隐含条件)
力扣传送门
思路:DFS,回溯
- 参数说明:
pre
,用于记录上一个数的下标,注意组合跟排列不一样,组合跟顺序没关系,也就是12和21是一样的,所以需要避免重复组合。==具体做法就是保证组合中元素的下标是有序的就行,也就是当前遍历到的元素的下标要大于上一个,也就是pre<i
。需要注意的是,这里的pre初始化是0,而不是-1,因为给定元素是1-n,直接用1-n的下标对应即可。
layer
,代表递归层数,或者说第几个组合数,k
代表一个组合有k个数,当layer==k +1
时,说明已经找到k个数,直接保存组合结果,无需再进行递归了。 - 剪枝条件:
k-layer > n-i
k-layer
代表组合还差几个数,n-i
代表还剩几个数可选择。如果组合需要的个数超过可选择的,说明可选择数不够,无法凑成组合,直接return。例如12345,k=4,layer=1,i=4,假如选择的第一个组合数是3,还差3个,但可用的只有4和5两个数,所以直接返回
组合系列--有排列就有组合相关推荐
- 排列公式和组合公式_排列与组合:排列公式与组合公式之间有什么区别?
排列公式和组合公式 Here's the short version. 这是简短的版本. Let's take ringing bells in a church as an example. 让我们 ...
- 围成一圈的排列组合问题_行测技巧:排列组合之“环形排列”问题
原标题:行测技巧:排列组合之"环形排列"问题 在公考学习备考中排列组合一直是大家比较头疼的题目,很多同学在高中时就对这种题目望而却步,其实排列组合题目虽然比较难,但是这类题目却可以 ...
- 软考高级信息系统项目管理师系列之四十一:项目组合管理
软考高级信息系统项目管理师系列之四十一:项目组合管理 一.项目组合管理内容 二.项目组合管理基础概述 1.项目组合定义及相关知识图 2.项目组合.项目集和项目之间的关系 3.项目组合模块具备的特征 三 ...
- 组合 公式 计算机,排列与组合的概念与计算公式
排列与组合的概念与公式 1.排列及计算公式 从n个不同元素中,任取m(m≤n)个元素按照一定的顺序排成一列,叫做从n个不同元素中取出m个元素的一个排列:从n个不同元素中取出m(m≤n)个元素的所有排列 ...
- Leetcode 组合总和 与 排列组合相关问题
Leetcode 组合总和 与 全排列相关问题 组合总和 题目链接: Leetcode 39.组合总和 题目描述 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 c ...
- 【组合数学】组合恒等式 ( 变下项求和 3 组合恒等式 | 变下项求和 4 组合恒等式 | 二项式定理 + 求导 证明组合恒等式 | 使用已知组合恒等式证明组合恒等式 )
文章目录 一.组合恒等式 ( 变下项求和 ) 变系数求和 1 二.组合恒等式 ( 变下项求和 ) 变系数求和 1 证明 ( 二项式定理 + 求导 ) 三.组合恒等式 ( 变下项求和 ) 变系数求和 2 ...
- 【组合数学】组合恒等式 ( 递推 组合恒等式 | 变下项求和 组合恒等式 简单和 | 变下项求和 组合恒等式 交错和 )
文章目录 一.组合恒等式 ( 递推式 ) 二.组合恒等式 ( 变下项求和 ) 简单和 二.组合恒等式 ( 变下项求和 ) 交错和 一.组合恒等式 ( 递推式 ) 组合恒等式 ( 递推式 ) : 1 . ...
- java 中组合与复用_可复用性和组合
可复用性和组合就是将组件可复用性的使用和组合这个组件. 可复用性和组合 我们可以新建一个index.html和index.js,在index.html中引入index.js,然后在index.html ...
- 组合模式_设计模式结构性:组合模式(CompositePattern)
组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象.组合模式依据树形结构来组合对象,用来表示部分以及整体层次.这种类型的设计模式属于结构型模式, ...
最新文章
- Dockerfile ENV和ARG的区别与应用
- 人工智能算法的可解释性方法研究
- Codeforces Round #540 (Div. 3) A,B,C,D2,E,F1
- python线程卡死问题解决_python while True造成未响应或卡顿的解决方法
- 为什么美团打车、滴滴外卖必败?君智谢伟山揭秘了背后的竞争战略逻辑
- 【树莓派】修改树莓派盒子MAC地址
- 投稿指南 | 云计算领域最前沿资讯、技术,期待您的专业解读!
- -1在numpy重塑中是什么意思?
- 网络规划设计师教程知识点精讲之计算机网络分类
- 实战python网络爬虫黄永祥_《实战Python网络爬虫》- 感想
- U盘分区以及启动U盘的制作
- Kata Container 2.x 和 3.0 安装,内核编译,镜像制作
- 《一代大商孟洛川》经典台词
- 《密码法》之商用密码应用安全性评估----六问
- 知乎关键词排名,知乎关键词排名置顶第一的方法
- 已经建立的TCP,收到SYN会发生什么?
- Android避坑指南,Gson与Kotlin碰撞出一个不安全的操作
- Neo4j Desktop版本的安装学习
- 【从零开始学Skynet】实战篇《球球大作战》(一):功能设计
- English语法_不定式 - 常用句型