wordpress无法安装这个包/上海seo优化外包公司
题目:
题解:
- 回溯法
- 本题与全排列的区别在于全排列中会出现
[1,2]、[2,1]
这样的排列,然而在组合中是不能存在的,所以我们每次需要将组合数第一个数固定,然后组合数之后的数依次增大。
代码如下:
class Solution {
public:vector<vector<int>> res;vector<int> path;vector<vector<int>> combine(int n, int k) {backtrack(n,k,1);return res;}// 组合也是枚举子集的过程,只是单个子集中元素的个数要为kvoid backtrack(int n,int k,int start){if(path.size()>k)return;if(path.size()==k){res.push_back(path);return;}// 该层内i最大取值中剩余元素的个数至少有k-path.size()个,然后+1表示可选的最大值序号for(int i=start;i<=n-(k-path.size())+1;++i){path.push_back(i);backtrack(n,k,i+1);path.pop_back();}}
};