题解 | 组合
组合
https://www.nowcoder.com/practice/7cfd3675cc964ae6818a771ac97ece5f
class Solution { //组合,采用的是按照顺序进行选取,组合:有几个东西,多少组合在一起成一种情况,有多少种情况,选了这个或者不选这个直到选够了K个作为一种递归方式,另一种就是递归中有循环,一层递归就是选一位,循环尝试每一个数作为本位; public: vector<vector<int>> ans; vector<int> temp; vector<vector<int> > combine(int n, int k) { dp(n, k, 1); return ans; } void dp(int n, int remain, int index){ // if(index == n+1){ 在此情况下若也凑够了K个,直接返回的话导致,诶呦添加; // return; // } if(remain == 0){ ans.push_back(temp); return; } for(int i=index; i<=n-remain+1 ;++i){ temp.push_back(i); dp(n, remain-1, i+1); temp.pop_back(); } return; } };