算法之回溯法

回溯法

回溯法非常适合由多个步骤组成的问题,并且每个步骤都有多个选项。当我们在某一步选择了其中一个选项时,就进入下一步,然后面临新选项,重复选择,直至最终状态。

经典面试题1
矩阵中的路径(详见《剑指offer》面试题12)
易错点
1.由于路径不能重复进入矩阵的格子,因此还需定义和字符矩阵大小一样的布尔值矩阵,标识路径是否进入每个格子。
2.终止递归的标志:路径字符串上的所有字符都在矩阵中找到合适的位置(此时str[PathLength]==’\0’)
应用场景
二维矩阵找路径的问题都可以采用回溯法

经典面试题2
机器人运动范围(面试题13)
计算数位之和的实现
int getDigitSum(int number)
{
int sum = 0;
while(number > 0)
{
sum += number % 10;
number /= 10;
}
return sum;
}

猜你喜欢

转载自blog.csdn.net/amychang230_/article/details/81632992