上海企业网站优化公司,使用asp.net制作网站的整体过程,微信开放平台开发文档,建设网站大概需要多少钱题目链接#xff1a; 
力扣#xff08;LeetCode#xff09;官网 - 全球极客挚爱的技术成长平台 
思路#xff1a; 数字对应字母用map(这里不好用#xff09;#xff0c;还是用数组映射#xff0c;因为这里的映射表是个静态的 组合的思想。比如2,3就是需要选两个字母即搜…题目链接 
力扣LeetCode官网 - 全球极客挚爱的技术成长平台 
思路 数字对应字母用map(这里不好用还是用数组映射因为这里的映射表是个静态的 组合的思想。比如2,3就是需要选两个字母即搜索树的深度k2。不同的是组合中是在同一组数中选现在是在两个序列中分别选择。 感觉暴力破解是不是更方便。发现循环次数不是固定的也就是回溯解决的问题还得用回溯。 
我的代码 敲完总感觉哪里有问题结果竟然一遍过了 
class Solution {
private:const string letterMap[10]  {, // 0, // 1abc, // 2def, // 3ghi, // 4jkl, // 5mno, // 6pqrs, // 7tuv, // 8wxyz, // 9
};
public:std::vectorstring result;string res;vectorstring letterCombinations(string digits) {if(digits  ) return {};comb(digits, digits.size(), 0);return result;}//第一步确定参数k是深度也就是结果字串的长度index是递归到第几个数字void comb(string digits, int k, int index){if(res.size()  k)//第二部返回条件{result.push_back(res);return;}//第二步一次循环int num  digits[index] - 0;//确定映射表数字for(int i  0; i  letterMap[num].size(); i){res.push_back(letterMap[num][i]);comb(digits, k, index1);//下一层res.pop_back();}}
}; 随想录代码 
// 版本一
class Solution {
private:const string letterMap[10]  {, // 0, // 1abc, // 2def, // 3ghi, // 4jkl, // 5mno, // 6pqrs, // 7tuv, // 8wxyz, // 9};
public:vectorstring result;string s;void backtracking(const string digits, int index) {if (index  digits.size()) {result.push_back(s);return;}int digit  digits[index] - 0;        // 将index指向的数字转为intstring letters  letterMap[digit];      // 取数字对应的字符集for (int i  0; i  letters.size(); i) {s.push_back(letters[i]);            // 处理backtracking(digits, index  1);    // 递归注意index1一下层要处理下一个数字了s.pop_back();                       // 回溯}}vectorstring letterCombinations(string digits) {s.clear();result.clear();if (digits.size()  0) {return result;}backtracking(digits, 0);return result;}
};