- 递归与回溯关系
- 递归,基本性质就是函数调用,在处理问题的时候,递归往往是把一个大规模的问题不断地变小,然后进行推导的过程
- 回溯,则是利用递归的性质,从问题的起始点出发,不断地进行尝试,回头一步甚至多步再做选择,直到最终抵达终点的过程
- 递归 Recursion
- 算法思想
- 是一种调用自身函数的算法(二叉树的许多性质在定义上就满足递归)
- 算法思想
-
- 练习
- LC91、LC247
- 练习
- 时间复杂度计算方式
- 迭代法
- 公式法
- 回溯 Backtracking
- 基本思想
- 是一种试探算法
- 一步一步地小心翼翼地进行向前试探,会对每一步探测到的情况进行评估,
- 如果当前的情况已经无法满足要求,那么久没有必要继续进行下去 - 避免走弯路
- 基本思想
-
- 特点
- 出现非法情况时,可以回退到之前的情景,返回一步,甚至是多步,然后再尝试
- 必须保证,每次都有多种尝试的可能
- 特点
-
- 练习
- LC39、LC51
- 练习