216. 组合总和 III
题目描述
找出所有相加之和为 n 的 k 个数的组合,且满足下列条件:
只使用数字1到9 每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。
解题思路
class Solution {
public:
vector<vector<int>>res;
vector<int>cur;
int cursum=0;
int k,n;
void bt(int start){
if(cur.size()==k&&cursum==n){res.push_back(cur);return;}
for(int i=start;i<10&&cursum<n;i++){
cur.push_back(i);cursum+=i;
bt(i+1);
cur.pop_back();cursum-=i;
}
}
vector<vector<int>> combinationSum3(int k, int n) {
this->k=k;this->n=n;bt(1);return res;
}
};