Day24_216组合总数_17电话号码的字母组合

216 组合总数

  1. 回溯三部曲:
  • 参数和返回值:没有返回值。参数传递组合个数k作为判断结束条件,参数n作为path中和的记录,startIndex作为下一次递归的开始。
  • 终止条件:如果path.size() == k 且 组合中数的和等于n的时候,表示组合数符合要求,记录在result中。反之,若path.size() != k 且 组合中数的和不等于n,表示这个组合不符合要求,直接return。
if (path.size() == k && n == 0){
   
	result.push_back(path);
	return;
}
if(path.size() > k) return;
  • 单层逻辑:从startIndex开始,先记录当前节点,修改节点的和,从当前节点的下一个节点开始递归,回溯恢复节点的和,回溯撤销当前节点。
for (int i = startIndex; i <= 9; i++){
   
	path.push_back(i);
	n = n - i;
	backtracking(k, n, i+1);
	n = n + i; //回溯恢复和
	path.pop_back(); // 回溯撤销当前节点
}

17 电话号码的字母组合

  1. 电话号码的数字字符串到字符字符串的映射:使用二维数组实现。
const string letterMap[10] = {
   
	"",//0
	"",//1
	"abc",//2
	"def",//3
	"ghi",//4
	"jkl",//5
	"mno",//6
	"pqrs",//7
	"tuv",//8
	"wxyz",//9
}
  1. 想想字符串之间的组合,横向的遍历是字符串的长度,纵向的遍历是字符串的个数。
  2. 回溯三部曲:
  • 返回值与参数:参数表示树的高度,字符串digits的下标,范围0~digits.size()。参数digits实现从字母到字符串的映射。返回值是void。
  • 终止条件:如果已经遍历了digits中的所有数字,则表示到达树低,结束。
if (startIndex == digits.size()) {
   
	result.push_back(tmp);
	return;
}
  • 单层逻辑
//数字字符到字符串转换
int index = digits[startIndex] - '0';
string letter = letterMap[index];
//横向遍历
for (int i = 0; i < letter.size(); i++){
   
	tmp += letter[i];//tmp.push_back(letter[i]);
	//纵向遍历
	backtracking(digits, startIndex + 1);
	//回溯
	tmp.resize(tmp.size() - 1);//tmp.pop_back();

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-01-24 14:18:08       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-24 14:18:08       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-24 14:18:08       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-24 14:18:08       20 阅读

热门阅读

  1. Linux软件包管理器yum

    2024-01-24 14:18:08       35 阅读
  2. OpenGL渲染中使用EGL创建上下文

    2024-01-24 14:18:08       35 阅读
  3. 李沐深度学习-多层感知机从零开始

    2024-01-24 14:18:08       35 阅读
  4. 人工智能(Artificial Intelligence,简称AI)

    2024-01-24 14:18:08       29 阅读
  5. SpringMVC-域对象共享数据

    2024-01-24 14:18:08       30 阅读
  6. 机器学习-PCA降维【手撕】

    2024-01-24 14:18:08       34 阅读
  7. c# MathNet.Numerics 圆拟合使用案例

    2024-01-24 14:18:08       33 阅读
  8. c语言中的sscanf函数

    2024-01-24 14:18:08       32 阅读