组合
Contents
组合
问题描述
https://leetcode-cn.com/problems/combinations/submissions/
收获
- 组合与排列的不同之处在于,组合只能向后看,排列是删除一个元素,组合是删除该元素以及该元素之前的所有元素!
- 组合的另外一个不同在于,组合必须有一个停止条件,要么是元素个数,要么是元素之和要满足一定的条件!
- 其他的地方与排列无异,都是利用了回溯的思想!
组合总和
问题描述
https://leetcode-cn.com/problems/combination-sum/
- 无重复元素
- 每个元素可被重复选取
收获
- 排序可以用break,不排序就只能用continue;
组合总和2
问题描述
- 可有重复元素
- 元素不可被重复使用 https://leetcode-cn.com/problems/combination-sum-ii/
收获
- 比起全排列,这里不再需要visited辅助数组,因为在组合中是把first之前的所有元素都删除掉!只需要对first进行更改即可
- 相当于用first和nums结合。
组合总数3
问题描述
- 和为n的k个数字的组合
- 组合中只允许出现1-9的正整数 https://leetcode-cn.com/problems/combination-sum-iii/
收获
- 其实比组合总数2简单,唯一的不同点在于两个终止条件的判断
组合总数4
问题描述
- 不需要列出所有的可能的组合,只需要计算有多少种组合;
- 正整数,且不存在重复数字。
- 允许元素重复使用。
- 顺序不同的序列被视为不同的组合。
https://leetcode-cn.com/problems/combination-sum-iv/
收获
- 需要利用动态规划的思想,而且是类似背包的思想。
Author 段新朋
LastMod 2020-07-07