class Solution {
public:
vector<vector<int>> res;
vector<int> path;
void com(int n,int k,int index)
{
if(path.size()==k)
{
int sum=0;
for(int i=0;i<k;i++)
{
sum+=path[i];
}
if(sum==n)
{
res.push_back(path);
return;
}
else return;
}
for(int i=index;i<10;i++)
{
path.push_back(i);
com(n,k,i+1);
path.pop_back();
}
}
vector<vector<int>> combinationSum3(int k, int n) {
com(n,k,1);
return res;
}
};
class Solution {
public:
string letters[10]={
"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"
};
vector<string> res;
string path;
void com(string digits,int index)
{
if(path.size()==digits.size())
{
res.push_back(path);
return;
}
int digit=digits[index]-'0';
string letter=letters[digit];
for(int i=0;i<letter.size();i++)
{
path+=letter[i];
com(digits,index+1);
path.pop_back();
}
}
vector<string> letterCombinations(string digits) {
if(digits=="") return res;
com(digits,0);
return res;
}
};